Kezdőlap › Fórumok › Programozás › Makefile írása
- This topic has 7 hozzászólás, 3 résztvevő, and was last updated 19 years, 2 months telt el by
terjekid.
-
SzerzőBejegyzés
-
2006-04-18-17:03 #2057430
Kicsit többet kerestem a neten, és azok alapján így módosítottam a Makefile-t:
revcontrast: revcontrast.c rwPNM.o memPNM.o
cc -o revcontrast revcontrast.c rwPNM.o memPNM.o
rwPNM.o: rwPNM.c rwPNM.h memPNM.o
cc -c rwPNM.c memPNM.o
memPNM.o: memPNM.c memPNM.h
cc -c memPNM.c memPNM.hEz így már megy.
2006-04-18-17:17 #2057431Az én makefile-aim így néznek ki:
Code:CC = g++ -Wall -ansi
$(CC) -c filem1.cpp
$(CC) -c filem2.cpp
$(CC) filem1.o filem2.o -o progiA .h-k használata már programozási kérdés(amivel én sokat szívtam:D).
2006-04-18-17:30 #2057432Igazából ez egy házi feladat elsõ lépése lenne, azért is vannak a .h-k Azért is kértem segítséget, mert már egy ideje keresgéltem valami hasonló leírást, de nem találtam, és már kezdezz sûrgõssé válni a dolog. A feladatban nem csak egszerûen fordítani kell, hanem majd késõbb egyáb állapotokat (vagy mi a nevük: a kettõspontal megadott soroknak?)
Az elsõ sor csak azért kell nálad, hogy egyszerûsítse a kódot olyan szempontból, hogy nem kell mindig kiírnod a „g++ -Wall -ansi” -t, nem?2006-04-18-17:40 #2057433Igen, azért van ott az elsõ sor.
2006-04-18-17:57 #2057434Azért köszi szépen a segítséget 🙂
2006-04-18-19:02 #2057435Szivesen. Bár nem tudom mit segítettem:D.
Egy tipp: ha bajba kerülsz a .h-kkal, hogy redefined üzeneteket kapsz stb. akkor itt egy rendkívül bugyuta, ámde hatásos megoldás(magamtól jöttem rá, szóval a tanárnak nem biztos, hogy tetszeni fog :)): Mindegyik .h elejére tegyél egy egyedi #define-t pl. #define betoltve_fileneve_h 1 és más fájlból includoláskor ellenõrizd, hogy nincs-e betöltve úgy, hogy ellenõrzöd, hogy definiálva van-e az a sor. pl.:Code:#ifndef betoltve_fileneve_h
#include „fileneve.h”
#endifEzt csak végszükség esetén használd:D
2006-04-18-19:17 #2057436Ezt a módszert még c++ -nál tanultam, hogy elkerülje a többszörör isnludolást. A fordításal manuálisan nem is volt eddig problémám, csak éppen a makefile írását nem értettem. Amiket találtam leírások azok mind túl bonyolították, és nem az elején kezdték el egyszerû példákkal, de most már azt hiszem jöhetnek azok is…
2009-12-04-19:58 #1883066Sziasztok!
Egy egyszerû feladatot kellene megcsinálnom: három forrás, és két header file alapján kellene egy Makefilet írni. A makefile-m így néz ki:
memPNM: memPNM.o revcontrast.o
cc -o memPNM memPNM.o revcontrast.o
rwPNM: rwPNM.o revcontrast.o
cc -o rwPNM rwPNM.o revcontrast.o
memPNM.o: memPNM.c memPNM.h
rwPNM.o: rwPNM.c rwPNM.h
revcontrast:
cc -o revcontrast revcontrast.c rwPNM.o memPNM.oaz rwPNM-hez kell már a memPNM, a revconrast tartalmazza a main-t. Mikor fordítani szeretném, akkor viszont hibát ír ki:
cc -c -o memPNM.o memPNM.c
cc -c -o revcontrast.o revcontrast.c
revcontrast.c: In function ‘main’:
revcontrast.c:15: warning: incompatible implicit declaration of built-in function ‘exit’
cc -o memPNM memPNM.o revcontrast.o
revcontrast.o: In function `main’:
revcontrast.c:(.text+0x5a): undefined reference to `readPNM’
revcontrast.c:(.text+0xcc): undefined reference to `writePNM’
collect2: ld returned 1 exit status
make: *** [memPNM] Error 1Mit rontottam el? Elõre is kösz a választ!
-
SzerzőBejegyzés
- Be kell jelentkezni a hozzászóláshoz.
legutóbbi hsz