我無法編寫一個可行的makefile。我已閱讀下面的教程(*),我看到,我們可以寫簡單的文件,如:我的makefile有什麼問題?
program : program.cpp
g++ -o program program.cpp -lm
(*)http://www.pma.caltech.edu/~physlab/make.html
我試圖ADPT的例子,以滿足自己的需要,但它不工作:
interpreter: gvr_v51.c gvr_v51_interpreter.h
gcc gvr_v51_interpreter.h gvr_v51.c -pedantic -Wall -std=c99 -o gvr_v51 -lSDL
parser: gvr_v51_parser.h gvr_v51.c
gcc gvr_v51_parser.h gvr_v51.c -pedantic -Wall -std=c99 -o gvr_v51 -lSDL
我需要實現的是能夠允許用戶通過輸入「make interpreter」或「make parser」進行編譯。兩者的區別在於第一個將包含頭文件gvr_v51_interpreter.h,而另一個將包含頭文件gvr_v51_parser.h
兩個頭文件是相同的,除了一個#define行在兩個值中保持不同的值文件。頭文件的其餘內容包括結構聲明,枚舉聲明以及函數原型。
是我想達到的甚至可能嗎?如果是這樣,你能告訴我我做錯了什麼嗎?
謝謝。
你得到了什麼錯誤? – AndyG
的ubuntu @ Ubuntu的VirtualBox的:〜/文檔/ GVR $使解釋器 GCC gvr_v51_interpreter.h gvr_v51.c -pedantic -Wall -std = C99 -o gvr_v51 -lSDL 在文件從gvr_v51.c包括:3:0: gvr_v51_file_handling.c:函數'check_args': gvr_v51_file_handling.c:6:18:錯誤:'ARGC_EXPECTED'未聲明(首次在此函數中使用) gvr_v51_file_handling.c:6:18:注意:每個未聲明的標識符僅報告一次對於每個函數,它出現在 gvr_v51_file_handling.c:7:3:warning:隱式聲明函數'printf'[-Wimplicit-function-declaration] – lcazarre
您可以使用-DInterpreter,然後將#ifdef放在標題中。它是一個更好的方式來做它比有兩個相同的文件...但我不知道爲什麼這不起作用 –