当前位置: 技术问答>linux和unix
继续请教makefile问题!
来源: 互联网 发布时间:2016-07-17
本文导语: 我的一个makefile最终要生成一个.a 的静态库,假如叫libresult.a。 在生成libresult.a中,我用到别人的API,在别人给的API中,有一个头文件文件夹,假如叫mips_include,而对应的 .c源文件已经被别人打包成一个libmips.a...
我的一个makefile最终要生成一个.a 的静态库,假如叫libresult.a。
在生成libresult.a中,我用到别人的API,在别人给的API中,有一个头文件文件夹,假如叫mips_include,而对应的
.c源文件已经被别人打包成一个libmips.a的静态库了。
现在在我自己写的.c源文件中用到了这个API库里面的函数,假如这个函数是mipsAPI(),我在我的.c文件中,包含了mipsAPI()所在的头文件。我在makefile中也包含了mips_include文件夹,也就是将头文件的位置包含进来了。
但是我make以后,报错说我的mipsAPI()未定义!!!所以我想问问大家是不是我最终生成libresult.a时也要将libmips.a这个静态库用进来???如果要加libmips.a静态库的话,加的位置在哪呢?
多谢大家了!!!
在生成libresult.a中,我用到别人的API,在别人给的API中,有一个头文件文件夹,假如叫mips_include,而对应的
.c源文件已经被别人打包成一个libmips.a的静态库了。
现在在我自己写的.c源文件中用到了这个API库里面的函数,假如这个函数是mipsAPI(),我在我的.c文件中,包含了mipsAPI()所在的头文件。我在makefile中也包含了mips_include文件夹,也就是将头文件的位置包含进来了。
但是我make以后,报错说我的mipsAPI()未定义!!!所以我想问问大家是不是我最终生成libresult.a时也要将libmips.a这个静态库用进来???如果要加libmips.a静态库的话,加的位置在哪呢?
多谢大家了!!!
|
gcc -o xxx **** -l /dir/libresult
gcc后面加上-l 后面跟库名字
gcc后面加上-l 后面跟库名字
|
如果你的项目目录为xxx/projectx 引用别人的库为xxx/projectx/libresult 库名为libresult.a
那么在makefile的gcc后面加上:
-L./libresult -lresult
-L表示搜索路径包含了当前编译目录下的libresult目录,-l表示引用的库名, 注意将lib前缀去掉
那么在makefile的gcc后面加上:
-L./libresult -lresult
-L表示搜索路径包含了当前编译目录下的libresult目录,-l表示引用的库名, 注意将lib前缀去掉