怎么添加自己的库文件路径及头文件路径

        在项目中经常会 移植各种开源库,编译好以后会生出相应的库文件,包括动态库和静态库,如果在编译的过程中没有用--prefix参数指定编译生成文件的路径,库文件会默认指定到/usr/local/lib目录下,要使用的头文件会指定到/usr/local/include目录下。我们都知道,在编译我们自己的程序的时候可以用-L+目录指定库文件链接的目录,用-l+库名指定要链接那个库(如libcurl.so.4.3.0.0,这个库,curl就是库名,用-I+目录指定头文件搜索路径。

但是我们项目开发过程中一般会编译两个平台上的库文件,一个是x86上的,一个是arm上的,在X86上调试成功了,才会交叉编译放到我们的目标板的系统上。这样如果都放在默认位置,使用的时候就会搞混了。所以我们需要把不同平台的库文件放到自己指定的位置,但是这样的话,编程我们的应用时会找不到对应的头文件或者链接的时候会出错。

解决办法就是把这些路径添加到配置文件中去

针对于动态库文件:一般 linux 系统把 /lib 和 /usr/lib /usr/local目录作为默认的库搜索路径,对于处于默认库搜索路径之外的库,需要将库的位置添加到库的搜索路径之中,设置库文件的搜索路径有下列两种方式,可任选其一使用,现以移植libcurl为例来说明:

1.在环境变量 LD_LIBRARY_PATH 中指明库的搜索路径,export LD_LIBRARY_PATH=/usr/local/json-c-0.9forarm/lib:$LD_LIBRARY_PATH

2.在 /etc/ld.so.conf 文件中添加库的搜索路径,将自己可能存放库文件的路径都加入到/etc/ld.so.conf中是明智的选择,加方法也极其简单,将库文件的绝对路径直接写进去就OK了。在运行一下/sbin/ldconfig,这个在每次更新这个文件后都必须运行一下。

针对于头文件:一般 linux 系统把 /usr/include 和 /usr/local/include 两个目录作为默认的库搜索路径,头文件搜索的顺序如下,

(1)在gcc编译源文件的时候,通过参数-I指定头文件的搜索路径,如果指定路径有多个路径时,则按照指定路径的顺序搜索头文件。命令形 式如:“gcc -I /path/where/theheadfile/in sourcefile.c“,这里源文件的路径可以是绝对路径,也可以是相对路径

(2)通过查找gcc的环境变量C_INCLUDE_PATH/CPLUS_INCLUDE_PATH/OBJC_INCLUDE_PATH来搜索头文件位置

(3)再找内定目录搜索。当#include使用相对路径的时候,gcc最终会根据上面这些路径,来最终构建出头文件的位置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值