当前位置: 技术问答>linux和unix
LINUX下库的搜索路径问题
来源: 互联网 发布时间:2016-04-28
本文导语: 如何把安装的一个库设为默认搜索路径。设为默认搜索路径以后是不是用g++时只需要g++ -o test test.cpp就可以?还是必须加别的选项才可以编译。还有-L选项是不是既可以给.a文件路径还可以给.so文件路径。为什么有的...
如何把安装的一个库设为默认搜索路径。设为默认搜索路径以后是不是用g++时只需要g++ -o test test.cpp就可以?还是必须加别的选项才可以编译。还有-L选项是不是既可以给.a文件路径还可以给.so文件路径。为什么有的库还需要-I来指定。-I是指定什么类型文件路径的?
谢谢了。回答的好帖子可以再加分
谢谢了。回答的好帖子可以再加分
|
1. 何把安装的一个库设为默认搜索路径?
方法很多很多...
法一: 将库拷贝到/lib/ /usr/lib等gcc默认搜索路径下即可;
法二: 在/etc/ld.so.conf.d/ 下建立一个你自己配置文件my.conf,将库所在路径加入到my.conf中,然后执行ldconfig;
法三: 在环境变量LD_LIBRARY_PATH中加入你自己的库路径; LD_LIBRARY_PATH=$(LD_LIBRARY_PATH):/your_lib_path/
... ...
2. 设为默认搜索路径以后是不是用g++时只需要g++ -o test test.cpp就可以? 还是必须加别的选项才可以编译。
不可以. 如果你要调用某个库 还需要用 -lname 来指定(其中,name就是库名字);比如你要使用线程库/usr/lib/libpthread.so,那儿需要用如下命令:
# g++ -o test test.cpp -lpthread
其它类似. 将库所在路径加入默认搜索只是省略了用 -L/your_lib_path/ 来执行库文件所在路径,但是 -lname还是不能省略的.
3. 还有-L选项是不是既可以给.a文件路径还可以给.so文件路径
都可以!
4. 为什么有的库还需要-I来指定。-I是指定什么类型文件路径的?
-I不是用来指定库的! 是用来指定头文件所在路径的!
good luck!
|
因为C编译器知道C库的名字,而其它库C编译器并不知道,需要显示告诉它。
|
-I 添加头文件搜索路径。
GNU手册。
GNU手册。
|
GCC
选项 -I //I必须大写
指定库的路径
选项 -I //I必须大写
指定库的路径
|
把库路径加到path
|
up
|
库名字需要指定,不然连接的时候找不到调用对象
|
man ldconfig
|
不懂,帮顶