Qt中pro文件如何从相对路径导入库

Qt工程中有lib、dll、a、so等文件需要导入时,有时需要指定路径。指定绝对路径换到其他机器编译时会不大方便。那么,如何在Qt pro文件中通过相对路径导入库呢。

动态库添加方式与静态库添加方式是不同的。实际使用过程中需要加以区别。

动态库添加代码

LIBS += -L ./          \

-L ./libpath/  \

-L $$PWD/libpath/path/  \

-l mylib       \

-l mylib2

LIBS+= "d:/programfiles/mylib3.a"

LIBS+="$$PWD/path/to/lib/mylib4.a"

LIBS+="./path/to/lib/mylib5.a"

以上语法在Qt5.9中全部可行。

在Qt5.2中,第3行方式($$PWD)编译会报错,说是无权访问文件夹。

静态库添加代码

LIBS += mylib.a       \

./path/mylib2.a

LIBS+= "d:/programfiles/mylib3.a"

LIBS+= "$$PWD/path/to/lib/mylib4.a"

LIBS+="./path/to/lib/mylib5.a"

看出来了吧,静态库添加时不要加-l前缀。或者直接用双引号以文件的方式加载。静态库必须写全路径。所有-L添加的路径都只针对动态库有效。

含义:

1)       上面的代码表示将当前路径、./libpath、./libpath/path/目录加入库文件搜索目录中,并向工程添加mylib、mylib2、mylib3、mylib4、mylib5这几个库文件。

2)       路径中有空格时,用双引号括起来。加上库的后缀使用全名。不要先导符号-l或者-L。

语法解析:

-L表示后面跟的是一个文件夹,工程会将这个目录加入库文件搜索路径中。

-l表示后面跟的是一个库文件的名字。不论后缀是.lib、.dll、.so、.a,都不需要加上后缀名,直接用库的点分号前面部分名字即可。

用于含空格的路径,由于可能含空格,所以引号的模式不能加任何-l或者-L前缀,只能是库文件全部路径,也即一定要带上后缀。为啥呢?个人感觉是避免make文件意外注入。。。意外被空格分隔成多条命令。。。。引号内可以使用变量,$$PWD之类的,也可以用“.”号。

注意事项

如果是在Qt中F5来Debug运行,确保库文件在Debug目录下对应的目录中。

如果已经编译过,直接从exe打开文件进行执行,只要库文件在exe相同目录下即可。

在库文件名字前面不要加任何路径。因为不加路径,工程会自动从所有包含路径中去查找,而如果包含了路径,那就会从指定路径下去寻找(万一在某个包含的路径中有库文件但自己手欠写成另外一个不包含库文件的目录)。显然不加路径限定更加灵活。

注意$$PWD与.的区别。$$PWD直接取出了代码所在目录,所以是固定的。当使用.号时,makefile文件中解析后还是一个.号,所以构建时代表与makefile同一目录。

Qt中pro文件如何从相对路径导入库相关推荐

  1. qt中.pro文件详细说明

    工程上需要使用QT框架进行项目开发,.pro文件里面的具体配置方式比较模糊.详细整理文件里各配置项的含义,并对其编写方法进行归纳总结. 目录 1.配置项说明 1.1.注释 # 1.2.添加/排除QT项 ...

  2. Qt 中pro文件换行注意的问题

    Qt 中pro文件换行必须用  \,直接按回车换行会导致程序不正确.如下: CONFIG(debug, debug|release) {OBJECTS_DIR += $$PWD/../debugDES ...

  3. QT中PRO文件写法的详细介绍

    在QT中,有一个工具qmake可以生成一个makefile文件,它是由.pro文件生成而来的,.pro文件的写法如下: 1. 注释 从"#"开始,到这一行结束. 2.模板变量告诉q ...

  4. QT中PRO文件写法的详细介绍,很有用,很重要!

    在QT中,有一个工具qmake可以生成一个makefile文件,它是由.pro文件生成而来的,.pro文件的写法如下: 1. 注释 从"#"开始,到这一行结束. 2.模板变量告诉q ...

  5. QT中PRO文件写法

    在QT中,有一个工具qmake可以生成一个makefile文件,它是由.pro文件生成而来的,.pro文件的写法如下: 1. 注释 从"#"开始,到这一行结束. 2.模板变量告诉q ...

  6. Qt中 .pro 文件和 .pri 文件介绍

    *.pro 这是一个典型的Qt示例程序的.pro文件(propriprfprl.pro): TEMPLATE = app CONFIG += QT QT += core guiTARGET = pro ...

  7. [qt creator]pro文件的设置

    1. 怎么使exe输出到指定目录 DESTDIR =$$PWD/../bin 2.QT中默认不选中Shadow build设置方法 3.test.pro文件常用的设置 TEMPLATE = app C ...

  8. Qt中pro、pri文件的语法介绍

    在Qt当中pro文件则是统筹整个项目的重要文件,而pri文件则是类似于C.C++中的头文件,反正就是我们可以把.pro文件内的一部分单独放到一个.pri文件内,然后包含进来,可以供给其他工程使用,现在 ...

  9. 【QT】震惊,一个由于QT只有.pro文件引起的世界难题。本文解决QT只有.pro的问题以及在项目中添加文件时,发生了一个编码错误的问题。

    震惊,一个由于QT只有.pro文件引起的世界难题!! 新手必看,避雷!!!不要相信网上那些人,他们文章中看不中用,正所谓印证了网络上的一句话:一人创作,万人模仿啊.和某手某音差不多!!# 概述:问题的 ...

最新文章

  1. 企业破产重整网_送战友,踏征程……企业破产法律知识介绍二
  2. php程序是如何运行,如何第一次运行PHP程序?
  3. 1.1 为什么需要 ML 策略-深度学习第三课《结构化机器学习项目》-Stanford吴恩达教授
  4. (论坛答疑点滴)怎么在datagrid翻页的时候确认?
  5. java(3) if结构
  6. leetcode-114-二叉树展开为链表*
  7. between and 效率_科学家改进植物光合作用,使植物光合效率提高40%
  8. 0821Servlet基础
  9. [转载] Python中filter筛选函数匿名参数问题
  10. 关于win10家庭版不能开启虚拟机的问题
  11. 网页鼠标点击特效案例收集
  12. 泛微OA数据库表说明
  13. Delphi 调用打印指令ZPL--USB
  14. python获取所有盘符_自动扫描所有本地磁盘,获取所有图片信息
  15. 树莓派IIC通讯获取BMI08x IMU数据进行姿态解算,并通过UART/TCP在rviz上显示
  16. 安卓 获取机身内存,可用内存;运行内存,剩余内
  17. 扩散模型探索:DDIM 笔记与思考
  18. 智能家居Homekit系列一智能插座
  19. 中英离线翻译mac_Instant Translate for Mac-即时翻译Mac版下载 V1.3.0-PC6苹果网
  20. 无法打开“kdiff3”,因为Apple无法检查其是否包含恶意软件。

热门文章

  1. tp3.2框架关闭日志记录
  2. spring boot的gradle整合日志
  3. 【Alpha】十天屠龙记
  4. (转载)C# Process.Kill() 拒绝访问(Access Denied) 的解决方案
  5. 最大矩阵和 2015-05-13 21:23 8人阅读 评论(0) 收藏...
  6. POJ 1988 Cube Stacking
  7. c#解压文件的实例方法
  8. 撸一个vue的双向绑定
  9. 如何进行手机web远程调试——chrome beta
  10. java调用百度地图API依据地理位置中文获取经纬度