2017-04-12 121 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。 –