 
              Object Oriented Programming COP3330 / CGS5409
 Assignment Submission Overview  Compiling with g++  Using Makefiles  Misc. Review
 Programs submitted through course web page  http://www.cs.fsu.edu/~jestes/cop3330  Link: “Click me, if you dare…”
 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!
 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
 The FSU SN is typed with dashes (i.e. AB3- 45-6789, not AB3456789)  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!
 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
 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 Practice  Option on the submission page called "Assignment 0“  http://ww2.cs.fsu.edu/~jestes/cop3330/sub mit3330/html/primary_class_page_w_counter .html  Will not be graded
 The base command for the Gnu C compiler is "gcc"  The base command for the Gnu C++ compiler is "g++"
 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++ prog1.cpp
 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>
 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 myProgram 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 "myProgram".
 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
 Understand how to log into both CS machines: ◦ 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
 Usage: sftp [username@]hostname  get filename - retrieve remote file  put filename - upload local file  Standard Unix commands: ◦ cd, ls, pwd, chmod, rename, rm, mkdir, rmdir, help, quit  Alternatively, GUI File Managers ◦ WinSCP - Free Windows client with SFTP capability ◦ FileZilla - Open source cross-platform GUI client
 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’
 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 must be preceded by a single ‘tab’ character  Extra targets, like ‘clean’, for cleanup ◦ target that lists a cleanup command (like the remove ‘rm’ command)  More than one target ◦ placing a target like ‘all’ at the top, and listing the executables made by the file as the dependency list
# 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
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’
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
 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
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
Recommend
More recommend