qt .pro文件和cmakelists.txt配置第三方库

本文介绍了如何在.pro和CMakeLists.txt文件中设置库文件和头文件路径。在.pro文件中,使用LIBS添加库路径(-L)和库名(-l),而在CMakeLists.txt中,通过set变量定义头文件和库路径,然后使用include_directories和link_directories指定搜索路径,target_link_libraries连接所需库。这些步骤对于项目构建和编译过程至关重要。

.pro文件引用第三方库文件和头文件路径

1.库文件(LIBS添加的是共享库文件,-L添加目录,-l指定共享库名称)

LIBS += -L/usr/local/lib -lmath

LIBS的使用就是-L指定库的目录,而-l指定库的名字,在Linux下,则去掉lib和后缀名,windows下去掉后缀名即可),静态库、动态库都是一样的。

2.头文件路径

INCLUDEPATH += /home/will/Projects/pluginTest/INCLUDEPATH 后添加头文件路径

Cmakelistst.txt引用第三方库文件和头文件路径

1.命名变量
set(INC_DIR /usr/local/include)
set(LINK_DIR /usr/local/lib)
set(SOURCE_FILES main.cpp)

2.添加头文件目录INCLUDE_DIRECTORIES,去哪里找头文件 相当于gcc/clang 中的-I(i的大写字母)参数
include_directories(${INC_DIR}) # 用${}引用变量

3.去哪里找库文件 .so .dll .dylib 相当于gcc 中的-L参数
link_directories(${LINK_DIR})

4.要链接的库文件的名字 相当于gcc中的-l(小写的l)参数
target_link_libraries(test_boost boost_filesystem boost_system)
只写库名就可以,就是libxxx.so的中间xxx的部分

欢迎大家私信,参与技术交流群学习

### CMakeLists.txt.pro 文件的区别及用途 #### 定义与背景 CMakeLists.txt 是一种由 CMake 使用的配置文件,主要用于跨平台构建系统的生成。它通过指定项目的源文件、依赖项其他构建参数来定义如何生成 Makefile 或 IDE 工程文件[^1]。 相比之下,`.pro` 文件是由 Qt 的 `qmake` 构建工具使用的项目文件。这种文件通常用于描述 Qt 应用程序的构建过程,包括头文件、源文件以及链接库的信息[^4]。 --- #### 主要区别 | **特性** | **CMakeLists.txt** | **.pro 文件** | |------------------------|-------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------| | **构建工具支持** | 支持多种构建系统(如 Makefiles, Ninja, Visual Studio, Xcode 等) | 只能生成基于 `qmake` 的 Makefile | | **灵活性** | 更灵活,适合复杂的多模块或多语言项目 | 较为简单,适用于纯 Qt 项目 | | **语法复杂度** | 提供更强大的脚本能力,允许条件判断、循环等操作 | 语法较为简洁,但缺乏高级脚本功能 | | **跨平台兼容性** | 原生支持多个操作系统编译器 | 虽然也具有一定的跨平台能力,但在非 Qt 场景下可能不够强大 | | **社区生态** | 广泛应用于开源项目工业界 | 大部分局限于 Qt 社区 | --- #### 具体用途对比 ##### CMakeLists.txt - **场景**: 当项目涉及多个子模块或者需要集成第三方库时,推荐使用 CMakeLists.txt 来管理整个构建流程。 - **优势**: - 支持嵌套目录结构,便于组织大型项目。 - 易于扩展到不同平台编译环境。 - 对非 Qt 组件的支持更好,例如 Python 扩展或其他语言绑定[^5]。 示例代码片段: ```cmake cmake_minimum_required(VERSION 3.10)[^2] project(MyProject) set(CMAKE_CXX_STANDARD 17) add_executable(my_app main.cpp) find_package(Qt6 REQUIRED COMPONENTS Core Gui Widgets) target_link_libraries(my_app PRIVATE Qt6::Core Qt6::Gui Qt6::Widgets) ``` ##### `.pro 文件` - **场景**: 如果开发的是纯粹的 Qt GUI 应用程序,则可以直接采用 `.pro` 文件简化配置工作流。 - **优势**: - 配置直观,易于初学者理解。 - 自动处理许多常见的 Qt 特定设置,比如资源文件 (QRC) 翻译文件 (.ts/.qm)。 示例代码片段: ```plaintext QT += core gui widgets CONFIG += c++17 TARGET = my_qt_app TEMPLATE = app SOURCES += main.cpp \ mainwindow.cpp HEADERS += mainwindow.h RESOURCES += resources.qrc ``` --- #### 如何选择? 对于仅限于 Qt 开发的小型至中型项目,`.pro` 文件可能是更快捷的选择;而对于混合技术栈的大规模软件工程来说,CMakeLists.txt 则提供了更高的可维护性适应性[^3]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值