当前位置: 首页 > news >正文

QT 两种库写法 LIBS += .a和LIBS += -L -l

LIBS += <路径>/<库名>.a 和 LIBS += -L<路径> -l<库名> 是两种不同的链接库文件的写法,它们的作用相同但语法和使用场景略有区别:

1. 直接路径写法(LIBS += <完整路径>.a

qmake

LIBS += D:/OpenCV/build/x64/mingw/lib/libopencv_core440d.dll.a
  • 特点:直接指定库文件的完整路径(包括文件名和 .a 后缀)
  • 适用场景
    • 当库文件路径比较特殊或不希望链接器搜索其他目录时
    • 需要精确指定某个特定版本的库文件时
  • 优点:明确指定文件,不会出现路径搜索错误
  • 缺点:路径过长时不够简洁,若库文件移动位置需要修改路径

2. 路径 + 库名写法(-L<路径> -l<库名>

qmake

LIBS += -LD:/OpenCV/build/x64/mingw/lib/ -lopencv_core440d

  • 特点
    • -L 用于指定库文件的搜索路径
    • -l 用于指定库名(注意:库名需要省略前缀 lib 和后缀 .a/.dll.a
  • 适用场景
    • 链接同一目录下的多个库文件时(只需指定一次 -L 路径)
    • 遵循标准命名规范的库文件(libxxx.a 或 xxx.dll.a
  • 优点:简洁,多个库可共享同一个路径设置
  • 缺点:依赖库文件的标准命名,若命名不规范可能导致链接失败

总结

两种写法本质上都是为了让链接器找到并使用指定的库文件,选择哪种取决于你的习惯和场景:

  • 单个库或路径特殊时,用直接路径写法更明确
  • 多个库且路径统一时,用 -L+-l 写法更简洁

在 OpenCV 配置中,两种写法可以互换,例如:

qmake

# 直接路径写法
LIBS += D:/OpenCV/build/x64/mingw/lib/libopencv_world440.dll.a# 等效的 -L -l 写法
LIBS += -LD:/OpenCV/build/x64/mingw/lib/ -lopencv_world440

INCLUDEPATH +=D:/OpenCV/build/include \ D:/OpenCV/build/include/opencv2 使用 \包含两个路径

在 QMake 中,使用反斜杠 \ 是为了将一行代码拆分成多行书写,使配置更清晰易读。你的写法:

qmake

INCLUDEPATH += D:/OpenCV/build/include  \D:/OpenCV/build/include/opencv2

等价于单行写法:

qmake

INCLUDEPATH += D:/OpenCV/build/include D:/OpenCV/build/include/opencv2

这两种写法效果完全相同,都是向 INCLUDEPATH 中添加两个路径:

  1. D:/OpenCV/build/include(OpenCV 的根头文件目录)
  2. D:/OpenCV/build/include/opencv2(OpenCV 模块的头文件目录)

补充说明:

  • 反斜杠 \ 必须放在行尾,作为换行连接符
  • 第二行的缩进只是为了美观,不影响语法(可以不缩进)
  • 这种多行写法在配置较长的路径或多个路径时非常实用,能显著提高 .pro 文件的可读性
http://www.dtcms.com/a/395869.html

相关文章:

  • 比斯特自动化|电动自行车电池点焊机的作用与使用
  • Django 模型与 ORM 全解析(一):从基础到实战的完整指南
  • NW955NW960美光固态闪存NW963NW971
  • iOS 26 软件兼容性大检查,哪些 App 出问题、API 变动要注意、旧功能不支持兼容性测试全流程
  • HarmonyOS NEXT互动卡片开发:从原理到实战的完整指南
  • 邪修实战系列(6)
  • Clover: 1靶场渗透
  • 智慧供水管网监测解决方案:实现压力、流量、水质数据集与监控
  • 深入理解Java虚拟机内存模型
  • 什么是缺陷检测?机器视觉表面缺陷检测从定义到实战方法,避开漏判误判
  • Svelte:编译时优化原理、与传统虚拟DOM框架的性能对比性能优化
  • 属性描述符
  • JavaWeb之JSP 快递管理与过滤器详解
  • 《MedChat智能医疗问答系统》项目介绍
  • 使用FastAPI和Docker部署机器学习模型:从开发到生产的最佳实践
  • Per-Tensor 量化和Per-Channel 量化
  • 执行bat任务栏有图标显示,执行pycharm64.exe就没有是什么原因
  • 【Docker项目实战】使用Docker部署wealth-tracker个人资产分析工具
  • LeapMotion_Demo演示
  • 智慧图书管理|基于SprinBoot+vue的智慧图书管理系统(源码+数据库+文档)
  • 面试技巧第四篇:嵌入式通信机制考点:消息队列、信号量与互斥锁
  • 面试八股:C语言的预处理和类型定义
  • 强化学习1.3 深度学习交叉熵方法
  • 用PowerBI的思想解决QuickBI文本无法动态配色问题
  • 逆向解析 1688 商品详情接口:自主构建 Sign 签名算法实战
  • SpringCloud项目阶段六:feign服务降级处理以及基于DFA算法的自管理敏感词审核和tess4j图片文字识别集成
  • 跨行业安全合规文档协同平台:重塑制造企业的质量管理与合规运营新范式
  • 线性代数 · SVD | 奇异值分解命名来历与直观理解
  • Qt 控件与布局
  • TDengine 聚合函数 SPREAD 用户手册