我在makefile中相當新。我正在嘗試創建一個makefile來編譯yu.c並鏈接yu.c以獲得一個名爲yu的可執行文件。
以下是我的代碼。我使用make -f mymakefile來運行該文件,每次運行它時,只有gcc -c yuFile.c完成。 我錯在哪裏?makefile不生成可執行文件
CC=gcc
yu.o: yuFile.c
${CC} -c yuFile.c
yu: yuFile.o
${CC} yu -o yuFile.o
run-c: yu
./yu
clean:
rm -f "*.o" core
有點困惑的第一個目標。這將創建一個文件yuFile.o,所以它永遠不會滿足。其實yuFile.o - > yuFile.o是一個內置的目標,所以你甚至不需要第一個。刪除'yu.o:'目標,然後反轉'yu:'和'run-c:'目標。第一個目標是'run-c:',它將成爲默認目標。如果你更新'yuFile.c',Makefile會重建'yuFile.o',然後連接'yu',然後運行'run-c:'。 –
調試'Makefile'-s的一般建議是使用'remake'(特別是使用'-x'標誌)。 –