2017-04-12 126 views
-1

以下終端命令將編譯和鏈接我的.c和.s的文件在Linux如何編寫Makefile以將C代碼與Arm彙編代碼鏈接?

rm *.o 
gcc -c printS.c -o printS.o 
as lab8.S -o lab8.o 
gcc lab8.o printS.o -o lab8test 

我從來沒有寫過一個make文件,我想這樣的事情值得的。任何幫助表示讚賞。

+0

看到這個問題:http://stackoverflow.com/questions/4827618/compiling-c-file-with-assembler-file-dependencies#4827835 –

回答

1

你會作出任何補充文件的方式。我確信有很多例子和網頁。

ideally_the_result : dependencies 
<tab>the commands 
<tab>the commands 
<tab>the commands 

所以

printS.o : printS.c 
    gcc -c printS.c -o printS.o 

,併爲每個你所使用的命令的規則。我建議你把最後一個第一所以它是默認的,如果你沒有對化妝品

clean : 
    rm -f *.o 
    rm -f lab8test 

命令行選項來覆蓋清理(使清潔)

這是超級簡單的方式,只是工作。從那裏你可以挖掘各種各樣的(特定於程序,gnu make vs其他)特殊角色,這些特殊角色意味着要制定更復雜的規則。

+0

這是非常有幫助的。有一些例子,但我只是不確定鏈接彙編文件時它是否工作不同。 –

+2

認爲makefiles與編譯或鏈接無關,它只是一個用於運行程序的腳本語言。程序可以是任何東西,不必與工具鏈相關。可以讓一個程序解析一個執行FFT並創建一個gnuplot格式的數據文件的音頻文件,然後另一個規則將該數據文件並調用gnuplot來生成一個png。 –