Qt程序依赖库编译选项
来源:互联网 发布:ip反查询域名 编辑:程序博客网 时间:2024/05/21 15:07
Qt编程4个多月以来,对于工程文件的组织一直有着更深入的理解。从起初的.pro,Makefile,.h,.cpp,.o,.moc,*_ui.h,.so等一股脑的放到工程文件,到后来有组织的将文件分门别类的放到各个项目子目录下,工程目录给人感觉越来越显得更professinal一些了。
然而对于编译后的动态库文件依赖关系的处理,近期随着工程代码的不断膨胀,依赖库的不断增多,变得越来越重要了。此前的做法是,简单粗暴的把私有依赖的库文件cp到/usr/lib下,然后ldconfig,自己的程序就能跑起来了。但是当目标机上同时也有其他应用程序需要某个特定版本库的时候,这种做法会造成严重的版本冲突问题。
因此,专业的做法是,自己的程序依赖库只放到应用程序特定的目录下,程序去连接对应目录的库文件运行。那么,使用Qt编译Linux下的应用程序该怎么做呢?
经过摸索、查看Qt联机帮助,并亲自实践,实现起来十分简单。
在make文件编写中,LFLAGS选项可以设置自定义的可执行程序库文件查找路径。那么在Qt中如何设置呢?如果修改.pro文件,使用qmake来自动生成LFLAGS依赖?
在“qmake Variable Reference”(qmake 变量参考)一节中,正是这个参数:QMAKE_LFLAGS,会修改Makefile的LFLAGS选项。本参数包含了传递给连接器的一组通用的标记。如果要为某个特定平台或者特殊项目修改选项,可以使用某个特殊参数,而可不用本参数。与之对应的还有QMAKE_LFLAGS_CONSOLE(仅适用于Windows)、QMAKE_LFLAGS_DEBUG(指定Debug版依赖库路径)、QMAKE_LFLAGS_RELEASE(指定Release版依赖库路径).....
使用指定的QMAKE_LFLAGS的好处在于,能够根据当前编译的不同配置(例如debug/release)选择不同路径下的依赖库(这些库也可能分为debug/release版)。当然,如果所有依赖库版本都相同,那么直接修改QMAKE_LFLAGS效果是一样的。
那么,在Qt项目的pro文件中,增加一行:
QMAKE_LFLAGS_RELEASE += -Wl,-rpath=[自定义库文件路径]-Wl,-Bsymbolic
然后执行qmake,make,把/usr/lib下的所有自定义库删掉,运行一下自己的程序,发现已经生效了。
- Qt程序依赖库编译选项
- Qt程序依赖库编译选项
- Qt程序依赖库编译选项
- 快速获取Qt编译Release程序所依赖的qt库
- QT 5程序所依赖的库
- windeployqt指令打包Qt程序依赖库
- 【Qt】Qt发布可执行程序(打包依赖库)
- GCC 编译依赖库和程序运行依赖库设置
- Qt交叉编译配置选项
- Qt 5 linux 编译选项
- QT 怎样添加编译选项
- vc编译选项,工程依赖相关的
- qt 中 c 编译选项/链接库如何链接
- Qt之程序打包(使用windeployqt.exe查找依赖库)
- Qt程序自动寻找依赖的动态库
- QT程序交叉编译
- QT程序如何编译
- QT程序编译
- php socket编程
- 四、对应用进行单元测试
- Apache+Tomcat集群配置详解 (1)
- 开发者如何提升和推销自己
- setsockopt 相关知识点
- Qt程序依赖库编译选项
- Ubuntu之恢复上方面板为初始状态
- Android中使用dimen定义尺寸
- Quartz Cron 触发器 Cron Expression 的格式
- java web开发中 显示图片的问题
- [转载]Android及Robotium学习总结【环境变量,真机调试及根据id模拟
- 基于mina的socket server——数据接收
- 一个python 小游戏
- C语言操作WINDOWS系统存储区数字证书相关函数详解及实例