当前位置: 技术问答>linux和unix
刚才那个帖子没人回答,直接加到50分,一个简单的C绝对简单文件写makefile的问题,先来先得,快速结贴
来源: 互联网 发布时间:2016-01-22
本文导语: 我的程序叫dict.c,需要用到一个libsq.a的文件。我程序本身没有.h文件,但是需要用到libsq.a里面的一些h和c文件。现在所有的东西都在一个父目录里,libsq.a的h文件在一个include文件夹中,其对应的c文件在一个lib文件夹中...
我的程序叫dict.c,需要用到一个libsq.a的文件。我程序本身没有.h文件,但是需要用到libsq.a里面的一些h和c文件。现在所有的东西都在一个父目录里,libsq.a的h文件在一个include文件夹中,其对应的c文件在一个lib文件夹中。 然后外面就是dict.c,libsq.a
这个makefile该怎么写?快速结贴
这个makefile该怎么写?快速结贴
|
makefile内容大概如下
targetName:source.c
[table]cc -o targetProgramName source.c -I includepath -L libFile.a
基本上这么写就可以了,解释:
第一行==>>targetName:目标名称,随便取一个你认为有意义的名字,make工具会将你的makefile的第一个目标作为其总的目标,接下来可以写很多。source.c是目标依赖的东西,也就是说要完成目标需要source.c,这样当你的source.c更新时,make工具知道需要更新该目标。
第二行==>>[table]是一个table制表符,注意:必须是table,这样才是make的一行操作,如果要完成该targetName目标有很多操作,则需要写多行,每一行都要以table开始,若一行操作在文本中写不完要换行,需要用来连接。
-o 选项是用来指定编译后的可执行文件名
-I 选项是指定.h文件的路径或者文件名
-L 选项是用来指定lib文件的名字,注意当用小写-i的时候不要再加上libFile.a,而是File.a,即文件名中的lib前缀不需要加上去。
targetName:source.c
[table]cc -o targetProgramName source.c -I includepath -L libFile.a
基本上这么写就可以了,解释:
第一行==>>targetName:目标名称,随便取一个你认为有意义的名字,make工具会将你的makefile的第一个目标作为其总的目标,接下来可以写很多。source.c是目标依赖的东西,也就是说要完成目标需要source.c,这样当你的source.c更新时,make工具知道需要更新该目标。
第二行==>>[table]是一个table制表符,注意:必须是table,这样才是make的一行操作,如果要完成该targetName目标有很多操作,则需要写多行,每一行都要以table开始,若一行操作在文本中写不完要换行,需要用来连接。
-o 选项是用来指定编译后的可执行文件名
-I 选项是指定.h文件的路径或者文件名
-L 选项是用来指定lib文件的名字,注意当用小写-i的时候不要再加上libFile.a,而是File.a,即文件名中的lib前缀不需要加上去。
|
jf