Object Oriented Programming COP3330 / CGS5409 Assignment Submission - - PowerPoint PPT Presentation

object oriented programming cop3330 cgs5409 assignment
SMART_READER_LITE
LIVE PREVIEW

Object Oriented Programming COP3330 / CGS5409 Assignment Submission - - PowerPoint PPT Presentation

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:


slide-1
SLIDE 1

Object Oriented Programming COP3330 / CGS5409

slide-2
SLIDE 2

 Assignment Submission Overview  Compiling with g++  Using Makefiles  Misc. Review

slide-3
SLIDE 3

 Programs submitted through course web

page

 http://www.cs.fsu.edu/~jestes/cop3330  Link: “Click me, if you dare…”

slide-4
SLIDE 4

 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!
slide-5
SLIDE 5

 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
slide-6
SLIDE 6

 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

  • f the numeric digits 0 or 1

 Hang on to this password, it will be needed

all semester!

slide-7
SLIDE 7

 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
slide-8
SLIDE 8

 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

slide-9
SLIDE 9

 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

slide-10
SLIDE 10

 The base command for the Gnu C compiler is

"gcc"

 The base command for the Gnu C++

compiler is "g++"

slide-11
SLIDE 11

 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

slide-12
SLIDE 12

 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>

slide-13
SLIDE 13

 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".

slide-14
SLIDE 14

 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
slide-15
SLIDE 15

 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

slide-16
SLIDE 16

 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
slide-17
SLIDE 17

 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’

slide-18
SLIDE 18

 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

slide-19
SLIDE 19

# 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

slide-20
SLIDE 20

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’

slide-21
SLIDE 21

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

slide-22
SLIDE 22

 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

slide-23
SLIDE 23

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

slide-24
SLIDE 24