我很新的Makefiles,我試圖從3個文件,file1.c,file2.c和file1.h建立一個可執行文件到一個名爲exFile的可執行文件。繼承人我得到了什麼:文件格式無法識別;作爲鏈接器腳本(makefile的問題)
all: exFile
exFile: file1.o file2.o
gcc -Wall -g -m32 repeat.o show.o -o repeat
file1.o: file1.c file1.h
gcc -Wall -g -m32 -S file1.c -o file1.o
file2.o: file2.c
gcc -Wall -g -m32 -S file2.c -o file2.o
我搜索了這種格式的makefile網頁,但我想出了空手而歸,所以我想知道如果有人可以提供幫助。當它試圖編譯我得到:
usr/bin/ld:file1.o:1: file format not recognized; treating as linker script
我編譯使用匯編文件的程序,但我不知道該怎麼用C文件或文件file1.h做。 file1.c包含file1.h,所以我必須鏈接它們(我認爲?)。任何建議或鏈接的參考,將不勝感激
這個makefile仍然很糟糕。你不需要一個模式規則 - make有一個就像它已經內置的一樣。另外,exFile將永遠是過時的,因爲你正在構建「repeat」。如果您提供瞭如何更正makefile的示例,請更好地完成它! – 2011-04-07 06:15:28
@僱傭的俄羅斯人:哎呀,謝謝你收到錯誤(從OP複製)。至於簡化makefile,是的,它可能更簡單,但我不確定這樣做會有助於OP的理解,因爲它不是導致問題的makefile結構。 – 2011-04-07 14:54:31
是的,謝謝大家。 – user695978 2011-04-07 18:53:54