2016-04-30 80 views
0

我正在編寫放置在我的項目根目錄中的MakefileGCC:編譯不同文件夾中的文件

這裏是我的項目目錄樹:

project: 
    Makefile 
    README 
    assets/ 
    build/ 
    src/ 

其實在Makefile我前面加上一個變量中的每個文件告訴給gcc哪裏找到文件:

gcc -c $(SOURCE_DIR)file.c 

我想編譯.c放置在目錄src中的源文件,而不更改Makefile中的工作目錄或將SOURCE_DIR添加到我必須編譯的每個文件中。

有沒有辦法做到這一點?

P.S.我已閱讀手冊(man gcc)尋找一些gcc選項。我發現-L-l可以幫助我,但我不明白他們的用法。

回答

1

標準的方式,如自動工具做,會寫一個Makefilesrc目錄,然後在你的主Makefile呼叫sub Makefile

programs: 
     make -C $(SOURCE_DIR) the_program 

這種情況下,你可以建立程序不管你位於主目錄或src目錄中。