假設我們有一個文件列表:多目錄 「製造」 在linux編程
- SRC
- 一個
- b
- Ç
- 的Makefile
a nd在每個文件夾中有許多.cc & .h文件。 如何編寫Makefile?
當我寫這樣 ./a/a.cc路徑或../a/a.cc錯誤
會發生。
但是當我把這些文件放在同一目錄 並寫爲a.cc. 一切都很好。
我在cygwin上運行它。 任何人都可以幫助我嗎?
假設我們有一個文件列表:多目錄 「製造」 在linux編程
a nd在每個文件夾中有許多.cc & .h文件。 如何編寫Makefile?
當我寫這樣 ./a/a.cc路徑或../a/a.cc錯誤
會發生。
但是當我把這些文件放在同一目錄 並寫爲a.cc. 一切都很好。
我在cygwin上運行它。 任何人都可以幫助我嗎?
的wildcard
功能是你在找什麼:http://www.gnu.org/software/make/manual/html_node/Wildcards.html
在Linux上,我寧願的Automake/Autoconf的編譯系統:http://de.wikipedia.org/wiki/GNU_Build_System
另一種可能是CMake的:http://www.cmake.org/
+1爲CMake,我用它與C++和它的作品像一個微風 – 2012-04-25 12:52:11
感謝你的熱情,這真是一個好方法〜 – MonteCarlo 2012-04-26 01:36:18
別忘了接受一個答案幫助你:D – 2012-04-26 05:25:25
從不可─如此清晰的目錄圖形,似乎您在Makefile
中缺少src/
目錄前綴。例如。編譯src/a/a.cc
,使用方法:
src/a/a.o: src/a/a.cc
$(CXX) $(CXXFLAGS) -c -o [email protected] $<
但:請你幫個忙,並使用一個真正的構建系統,如CMake。它是跨平臺的,可以生成IDE項目文件(例如,用於Visual Studio,Xcode,Eclipse,CodeBlocks等),具有更高的級別併爲您自動執行依賴關係跟蹤。
感謝您的熱忱,這真是一個好方法〜 – MonteCarlo 2012-04-26 01:36:26
您已經遺漏了很多詳細信息(例如,要放置目標文件的位置),但VPATH
可能是您要查找的內容。
VPATH = src/a src/b src/c
# Now you can write rules as if the .cc & .h files were in the current directory.
%.o: %.cc
do something with $<
foo.o: foo.cc bar.h
do something special with $<
感謝您的熱情,這真是一個好方法〜 – MonteCarlo 2012-04-26 01:36:11
發佈makefile的例子會有幫助。 – Pubby 2012-04-25 07:29:18
應與./a/a.cc一起使用,但您必須確保依賴關係正確。一個Makefile永遠不會改變工作目錄 – stefan 2012-04-25 07:31:13
潛在的複製到這裏:http://stackoverflow.com/q/9313760/1025391 – moooeeeep 2012-04-25 07:38:50