Recitation Week 2 Object Oriented Programming COP 3330
Recitation Week 2 Object Oriented Programming COP 3330 / CGS 5409
Today’s Recitation � Assignment Submission Overview � Compiling with g++ � Using Makefiles � Misc. Review
Assignment Submission � Programs submitted through course web page � http: //www. cs. fsu. edu/~jestes/cop 3330 � Link: “Click me, if you dare…”
Assignment Submission cont. � Submit source files only! ◦ Only. cpp and. h files ◦ DO NOT INCLUDE BINARIES! ◦ If more than one file, upload each individually � Use FSU SN ◦ Social Security number will not work � Require additional submission passwords ◦ NOT THE SAME AS FSU/CS PASSWORDS!
Assignment Submission cont. � Feedback from submission: ◦ (1) a directory listing of files submitted for that assignment so far ◦ (2) a copy of the file just submitted � Do not e-mail asking for confirmation! ◦ Verify submission with above methods
Misc. Submission Notes � The FSU SN is typed with dashes (i. e. AB 3 -456789, not AB 3456789) � Passwords are all 8 characters long � The passwords do not contain any instances of the numeric digits 0 or 1 � Hang on to this password, it will be needed all semester!
Misc. Submission Notes � Make sure to follow all submission instructions carefully � Homework submitted by e-mail to the instructor or me will NOT BE GRADED! � Can re-submit an updated file that was previously submitted ◦ Will overwrite previous attempt
Misc. Submission Notes � One late day submission is allowed (with a letter grade deduction) on assignments � After that time, course web site WILL NOT accept submissions � MAKE SURE TO SUBMIT BY THIS TIME
Assignment Submission Test � Assignment Submission Practice � Option on the submission page called "Assignment 0“ � http: //ww 2. cs. fsu. edu/~jestes/cop 3330/sub mit 3330/html/primary_class_page_w_counter. html � Will not be graded
Compiling C / C++ programs with gcc & g++ � The base command for the Gnu C compiler is "gcc" � The base command for the Gnu C++ compiler is "g++"
Single File Programs � To compile a program that is in a single file, the easiest compilation uses the command format: g++ <filename> � Where the filename ends with ". cpp“ � Example: g++ prog 1. cpp
Multiple File Programs � To invoke the Compile stage, which translates source code (. cpp files) into object code (. o files), use the -c flag. Format: g++ -c <filename> � To name a target (something other than the default filename, use the -o flag. Format: g++ -o <target_name> <remainder of command>
Multiple File Examples � g++ -o yadda. o -c fraction. cpp ◦ This command invokes just the compile stage on fraction. cpp, but names the object code file "yadda. o" (instead of the default "fraction. o"). � g++ -o bob. exe circle. o main. o ◦ This command links the two object code files ("circle. o" and "main. o") into an executable, called "bob. exe" (instead of the default "a. out"). � g++ -o my. Program thing. cpp main. cpp ◦ This command compiles and links (since -c not used) the code files "thing. cpp" and "main. cpp" together into the executable program called "my. Program".
Reminders � Source code is just text! � For the purposes of assignments, ANY text editor can be used to � Practice with at least one Unix text editor create code files ◦ For unix beginners, "pico" is recommended, due to easy learning curve. ◦ Emacs, Vim, MUCH more powerful
CS Account login � Understand machines: how to log into both CS ◦ linprog. cs. fsu. edu ◦ program. cs. fsu. edu � Use SSH (Secure SHell) client to login � Files created on a windows machine can be FTP-ed to CS accounts with the SFTP feature built into the SSH software
SSH / SCP � Usage: sftp [username@]hostname filename � put filename � get � Standard - retrieve remote file - upload local file Unix commands: ◦ cd, ls, pwd, chmod, rename, rm, mkdir, rmdir, help, quit � Alternatively, GUI File Managers ◦ Win. SCP - Free Windows client with SFTP capability ◦ File. Zilla - Open source cross-platform GUI client
Makefiles � Unix system has what is called a ‘make’ utility � Configuration file to assist with compilation � Simple text file, should be named either ‘makefile’ or ‘Makefile’
Makefiles � Idea of the ‘target’ ◦ What is able to be ‘made’? � Dependency list ◦ What needs to be re-made each time? � Command list, and formatting ◦ i. e. it must be preceded by a single ‘tab’ character � Extra targets, like ‘clean’, for cleanup � More than one target ◦ target that lists a cleanup command (like the remove ‘rm’ command) ◦ placing a target like ‘all’ at the top, and listing the executables made by the file as the dependency list
Sample Makefile # This is a comment line # Sample makefile for fraction class frac: main. o frac. o g++ -o frac main. o frac. o main. o: main. cpp frac. h g++ -c main. cpp frac. o: frac. cpp frac. h g++ -c frac. cpp clean: rm *. o frac
Sample Makefile frac: main. o frac. o g++ -o frac main. o frac. o � Specifies ‘frac’ as the target � Depends on main. o and frac. o � If either of these files changed since the last build, then ‘frac’ must be rebuilt � Links two object code files together into a target executable called ‘frac’
Sample Makefile main. o: main. cpp frac. h g++ -c main. cpp � Specifies how to built the target ‘main. o’ � Depends on main. cpp and frac. h � If either file changes, main. o must be rebuilt � Uses normal g++ commands for the compile stage
Sample Makefile � Any section can be invoked specifically with the command: make <target_name> � For instance, to build only the ‘frac. o’ target, use: make frac. o
Sample Makefile clean: rm *. o frac � The target name is ‘clean’ � Executes the remove command (‘rm’) � Removes the object code file(s) and the executable(s) from the current directory
Questions?
- Slides: 24