ISU+Ov2


 * Opg 1. Hello World**

code //hello using namespace std;
 * Cpp fil:**
 * 1) include

int main {

cout<<"Hello world!"<<endl; return 0; } code

code g++ -o hello hello.cpp ./hello code
 * Compile:**

Opgavens pointe har været at lave en simpelt hello_world fil i cpp. filen har vi så compilet med g++ compilere. Med compileren oprettes der en o fil ud fra filen hello.cpp. Exercute filen bliver placeret i samme bibliotek. Idéen med opgaven er at se på hvordan man kan compile uden brug af standard hjælpe programmer som f.eks. eclipse, Visual osv. Vi ser altså dte er muligt at compile uden brug af disse, dette kan bl.a. også benyttes om man ønsker at bruge f.eks. emacs som sin editor hvor man er nødsaget til selv at danne sine makefile's.


 * Opgave 2. Makefile**

Makefile benyttes til at samle filer og compile dem til en execute file. I denne øvelses del benyttes der dog kun hello.cpp. Ved at tilføje andre targets kan vi bla. få functioner som kan benyttes til clean osv. ved kald: make clean. code
 * 1) Hello world makefile

SOURCES = hello.cpp OBJECTS = ${SOURCES:.cpp=.o} EXECUTABLE=hello
 * 1) Sources

CC=g++ CFLAGS+= -Wall -g
 * 1) Compile

build: ${OBJECTS} ${CC} -o ${EXECUTABLE} ${OBJECTS}
 * 1) Tagets

hello.o: hello.cpp ${CC} -c hello.cpp clean: @echo "Removing files..." rm -f ${EXECUTABLE} ${OBJECTS}
 * 1) Clean up in files

help: @echo "Avaiable targets..." @echo "- help (watching now)" @echo "- build (to build the binary)" @echo "- clean (to cleanup everything)" @echo "Print, what in folder" @ls code I makefilen kalder vi først de sourcefiler der skal benyttes, om flere defineres de også her. Objekt defineres til at have cpp fil og o og så fortæller vi at vi ønsker at lave en execute fil der hedder hello. Compileren der vælges er g++ da det er c++ kode der skal compiles og køres i terminalen. Om det var c kode, eller kode der skulle compiles til et target(embedded system) så skulle vi have brugt en anden compiler. I Target defineres der hvordan der skal bygges og hvilke filer der skal compiles og laves .o fil til. ved flere filer i programmet defineres flere .o filer. I opgaven skal vi desuden lave en clean function som kan clean alle objekt filer og .o filer. Denne laves også under target sammen med help funktionen som kan fortælle bla. hvor mange targets der er tilgængelige.

code
 * Opgave 3 Flere filer**
 * 1) Parts

SOURCES = main.cpp part1.cpp part2.cpp OBJECTS = ${SOURCES:.cpp=.o} EXECUTABLE=parts1+2
 * 1) Sources

CC=g++ CFLAGS+= -Wall -g
 * 1) Compile

build: ${OBJECTS} ${CC} -o ${EXECUTABLE} ${OBJECTS}
 * 1) Tagets

main.o: main.cpp ${CC} -c main.cpp

part1.o: part1.cpp ${CC} -c part1.cpp

part2.o: part2.cpp ${CC} -c part2.cpp

clean: @echo "Removing files..." rm -f ${EXECUTABLE} ${OBJECTS}

help: @echo "Avaiable targets..." @echo "- help (watching now)" @echo "- build (to build the binary)" @echo "- clean (to cleanup everything)"

@echo "Print, what in folder" @ls code Som i opgave 2 bygges der en makefile men for denne har vi lavet den til at compile flere parts, dette vil sige ta vi har udvidet makefilen lidt. Som beskrevet i opgave kaldes alle source files der skal benyttes og så bygger vi flere objekter under target til at compile med. alt compiles til en execute file.

der bliver oprettet et c++ projekt i eclipse derefter tilføjes headerfiler( part1, part 2) og cppfiler( part1, part2, main) til sidst buildes projektet
 * Opgave 4**

for at være sikker på at operativsystemet ved at main er afsluttet korekt bruges return EXIT_SUCCESS dete gør at operativsystemet uanset om systemet bruger return 0 eller return 1 ved at programmet er afsluttet korekt.

part1.h

part2.h part1.cpp part2.cpp

main.cpp

efter kompileringen at programmet er blevet kompileret kan programmet tilgås fra terminalen fra terminalen eksekveres programmet med ./ komandoen.

Vi har lært hvordan man kan compile på host ved hjælp af g++ compileren fra terminalen. Metoden er den samme som benyttes når vi skal compile til target som vi skal lære på et senere tidspunkt. Vi har lært at lave grundlæggende makefile's som kan compile, lave en executable og clean. Dette kan bruges til at compile store projekter hvor den tager mange filer, compiler det og laver en executable. Vi har lært at bruge eclipse til at compile vores kode for os. Dette er samtidigt en god editor til vores kode.
 * Hvad har vi fået ud af denne øvelse:**