Linux下的库文件搜索路径
对于以压缩包发布的软件,在它的目录下通常都有一个配置脚本configure,它的作用确定编译参数(比如头文件位置、连接库位置等),然后生成Makefile以编译程序。可以进入该软件的目录,执行"./configure --help"命令查看使用帮。
一个程序能正确编译、链接、运行需要满足3个条件:预处理时能找到头文件,连接时能找到库(静态库或动态库),运行时能找到库。下面介绍库文件的搜索路径 :
编译的时候:
gcc最先搜索-L参数指定的路径--->gcc的环境变量LIBRARY_PATH设置的路径--->内定目录 /lib /usr/lib /usr/local/lib 这是当初compile gcc时写在程序内的
1.“-L”指定连接时库的搜索路径,这些库使用"-l"来显示指定,比如"-labc"表示的库文件为libabc.so
2."-rpath-link"比"-L"多一项功能,它指定的目录还可以用于搜索依赖库。
3."-rpath"比"-rpath-link"多一项功能,它指定的目录会被编译进程序中,当程序运行时,首先从这些目录中寻找库。
怎样指定"-rpath-link"呢?连接器arm-linux-ld通常是由arm-linux-gcc间接启动的,而arm-linux-gcc并不认识"-rpath-link"选项,所以需要在前面加上关键字"-Wl",表示选项用于连接器。在执行配置命令configure之前设置LDFLAGS即可,比如:
export LDFLAGS="-Wl,-rpath-link-Wl,/work/crossbuild/X/lib -Wl,-rpath-link-Wl,/work/corssbuild/GTK/lib"
./configure
运行的时候(搜索动态链接库):
路径一:编译时使用"-rpath"指定目录。
路径二:在配置文件/etc/ld.so.conf中指定动态库搜索路径
路径三:通过环境变量LD_LIBRARY_PATH指定动态库搜索路径(当通过该环境变量指定多个动态库搜索路径时,路径之间用冒号":"分隔)
路径四:在编译目标代码时指定该程序的动态库搜索路径(编译时,通过gcc 的参数"-Wl,-rpath,"当指定多个动态库搜索路径时,路径之间用冒号":"分隔)
路径五:默认的动态库搜索路径
转载于:https://www.cnblogs.com/linuxbo/p/4301750.html
Linux下的库文件搜索路径相关推荐
- linux的库文件路径,Linux下的库文件搜索路径
对于以压缩包发布的软件,在它的目录下通常都有一个配置脚本configure,它的作用确定编译参数(比如头文件位置.连接库位置等),然后生成Makefile以编译程序.可以进入该软件的目录,执行&quo ...
- Linux下gcc编译中关于头文件与库文件搜索路径相关问题
如何指定GCC的默认头文件路径 网上偶搜得之,以之为宝:) 原地址:http://blog.chinaunix.net/u/28781/showart.php?id=401631 ========== ...
- 库文件搜索路径及GCC搜索路径总结
1. -L指定搜索的路径, -l指定库名 如何指定GCC的默认头文件路径 网上偶搜得之,以之为宝:) 原地址: http://blog.chinaunix.net/u/28781/showart. ...
- linux-gcc 编译时头文件和库文件搜索路径
linux-gcc 编译时头文件和库文件搜索路径 一.头文件 gcc 在编译时寻找所需要的头文件 : ※搜寻会从-I开始 ※然后找gcc的环境变量 C_INCLUDE_PATH,CP ...
- linux vim配置头文件搜索路径
linux vim配置头文件搜索路径 根目录下 修改 etc/profile 文件结尾处加 set path=.,/usr/include,,/usr/include/c++/** //**搜索子目录 ...
- linux 查看libevent 安装目录,linux下libevent安装配置与简介 以及 linux库文件搜索路径的配置...
libevent简介 libevent是基于Reactor模式的I/O框架库,它具有良好的跨平台性和线程安全,它实现了统一事件源(即对I/O事件.信号和定时事件提供统一的处理).高性能分布式内存对象缓 ...
- linux下mkdir头文件_整理Linux下gcc编译中关于头文件与库文件搜索路径相关问题
态库./libpos.so. /root/test/env/lib/libpos.so和/root/test/conf/lib/libpos.so.我们再用源程序 pos_lib.c(见程序5)来创建 ...
- linux头文件 库,Linux操作系统的头文件和库文件搜索路径
一. 头文件 1 ""中的头文件,在源文件当前目录查找 2 -I 中指定目录 -I可以在CFLAG中指定 3 gcc的环境变量 C_INCLUDE_PATH, CPLUS_INCL ...
- [转]Linux C语言头文件搜索路径
转自:http://hi.baidu.com/ilonng/blog/item/a0232435fbcfb90490ef390d.html/cmtid/68d4ab7bbb8026fb0ad187be ...
最新文章
- 微服务追踪系统,你绝对想不到!
- Kubernetes文章汇总
- [置顶] Android面试题目之四: 归并排序
- objective-c(反射)
- 栈和队列(python代码)
- 工作263:弹性布局 修改样式
- php 负载监控_php记录服务器负载、内存、cpu状态的代码
- xlwings删除数据_xlwings如何删除行和列?
- mysql完全手册阅读笔记
- POJ 1001 Exponentiation
- 谷歌紧急修复已遭在野利用的0day
- android.jar 位置,Android 导入jar包 so模块--导入放置的目录
- 一、二层交换机构建局域网
- GhostXP_SP3 PCOS技术快速装机版 5.7(优化细节 力争完美)
- 麻省理工学院计算机博士几年,破译「罗塞塔石碑」要几十年?华裔MIT博士开发新系统,快速解密...
- java8 lambda 处理分类和子分类的技巧
- java工程师视频教程,mysql数据库引擎面试
- 在戴尔游匣7559上安装win10和Ubuntu16.04双系统
- CDay09 联合和枚举
- 考PMP需要多少钱?
热门文章
- MFC让窗口最前端显示
- 如何输出源文件的标题和目前执行行的行数
- [react] React.createClass和extends Component的区别有哪些?
- React开发(229):react删除的实现
- [js] 使用ajax轮询接口有什么优缺点?
- 工作206:修改新增按钮显示逻辑
- 前端学习(2623):Vuex初步识别
- 工作86:防抖和节流的问题
- 前端学习(2038)vue之电商管理系统电商系统之优化nprogress加载进度条
- 前端学习(2012)vue之电商管理系统电商系统之手动为upload组件添加请求头