QtCreator配置Cmake

本文详细介绍了如何下载及安装CMake,并在QtCreator中使用两种方式(msvc和MinGw)进行配置,帮助读者顺利搭建CMake工程,实现编译与运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.下载并安装CMake

 CMake 官网https://cmake.org/

2.QtCreator中的配置

①.msvc方式

②.MinGw方式

 

随便打开一个CMake工程:

 

编译并运行:

 

### 如何在 QtCreator配置自定义 CMake 安装路径或第三方库 要在 QtCreator 中使用指定的 CMake 安装库或者引入第三方库,可以通过调整项目的构建设置以及修改 `CMakeLists.txt` 文件来实现。以下是具体的方法: #### 1. 设置全局 CMake 路径 QtCreator 支持手动指定使用的 CMake 可执行文件位置。这允许开发者选择特定版本的 CMake 或者自定义安装路径。 - 打开 **Tools → Options**。 - 导航至 **Build & Run → CMake** 页面。 - 在 “Executable” 字段中输入目标 CMake 的可执行文件路径[^1]。 此操作会更改整个 IDE 对应的 CMake 工具链,默认影响所有项目。 --- #### 2. 修改 Kit Configuration 添加自定义工具链 当存在多个开发环境(例如不同版本的 MinGW 或 MSVC),可以创建新的 Kits 来区分不同的编译器和 CMake 配置。 - 打开 **Tools → Options → Build & Run → Kits**。 - 创建一个新的 Kit 并关联所需的编译器、调试器以及其他组件[^3]。 - 确保新 Kit 下的 CMake 和其他依赖项指向正确的目录。 这样可以在多平台或多版本环境下灵活切换。 --- #### 3. 编辑 `CMakeLists.txt` 引入外部库 为了加载第三方库,通常需要更新项目的 `CMakeLists.txt` 文件以包含必要的头文件和链接库路径。 ##### a. 指定头文件路径 (`include_directories`) 假设有一个名为 OpenCV 的第三方库位于 `D:/libs/opencv/include`,则可在 `CMakeLists.txt` 中加入如下代码: ```cmake include_directories(D:/libs/opencv/include) ``` ##### b. 链接动态库或静态库 (`target_link_libraries`) 继续以上述 OpenCV 库为例,如果其二进制文件存储于 `D:/libs/opencv/lib`,那么需进一步声明链接关系: ```cmake link_directories(D:/libs/opencv/lib) add_executable(myapp main.cpp) target_link_libraries(myapp opencv_core opencv_imgproc) ``` 上述命令分别设置了额外的查找路径并指定了要连接的目标库名称[^2]。 --- #### 4. 自动化管理依赖 (FetchContent / ExternalProject) 对于复杂的跨平台工程,推荐采用更高级别的模块简化流程。比如利用 FetchContent 将远程仓库中的资源拉取下来作为子项目集成进去: ```cmake include(FetchContent) FetchContent_Declare( googletest GIT_REPOSITORY https://github.com/google/googletest.git GIT_TAG release-1.8.0 ) FetchContent_MakeAvailable(googletest) add_executable(tests tests/main.cc) target_link_libraries(tests GTest::GTest GTest::Main) ``` 这种方式无需提前下载任何东西即可按需同步所需资料[^4]。 --- #### 5. 插件扩展支持 某些场景可能涉及插件机制的应用程序设计模式。此时除了常规方式外还需要特别注意接口一致性等问题。例如下面展示了一个简单的插件类定义片段[^5]: ```cpp #ifndef MYPLUGIN_H #define MYPLUGIN_H #include <QObject> #include "plugininterface.h" class MyPlugin : public QObject, public PluginInterface { Q_OBJECT Q_INTERFACES(PluginInterface) Q_PLUGIN_METADATA(IID "id123") public: explicit MyPlugin(QObject* parent = nullptr); void doSomething() override; }; #endif // MYPLUGIN_H ``` 这里展示了如何基于 Qt 提供的功能注册一个符合标准的服务提供方实例。 --- ### 总结 通过合理配置 QtCreator 的内部参数配合精心编写好的脚本描述文档,能够轻松达成定制化的开发需求。无论是基础层面替换默认解释引擎还是深入探索框架间协作可能性均具备极高灵活性。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Liu-Eleven

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值