用cmake构建基于qt5.8.0的qt5项目
来源:互联网 发布:安庆四中信息编程班 编辑:程序博客网 时间:2024/06/06 06:46
为什么要用cmake来构建qt5的项目呢?qt不是有qmake吗?这样,岂不是多此一举?
其实,应用cmake来构建项目还是非常有必要的,特别是当你的项目涉及到很多第三方库的时候,cmake的优势非常突出。
举个简单的例子:
假如我要开发一个基于pcl 1.8.0,vtk 7.0,opencv3.2.0, eigen3, Sophus ……等其他的第三方库的qt5的项目
而不仅仅是只用qt一家的库。
qmake只针对qt自身的库有优势,如果你的项目中需要依赖很多的第三方库,而你又觉得手动配置第三方库的.pro文件挺麻烦的,费力不讨好。
就拿pcl来说吧,其实安装一点都不难,非常简单,即使是源码安装也很容易,顶多是cmake配置项需要花一点时间,而头疼的是当你需要用qmake构建项目的时候,需要配置很多头文件和库文件.
这里,我就仅仅以一个很简单的实例,来教大家如何使用cmake构建和管理项目:
首先,我们还是要使用qt creater创建中规中矩的qt5的项目:helloworld
项目中的文件列表如下:项目虽小,五脏俱全,该有的文件都有了(.h .cpp .qrc .ui .pro .png)
我把.png文件和.qrc文件放在了一个新建的resources资源文件夹中
├── helloworld.pro├── helloworld.pro.user├── main.cpp├── resources│ ├── ico.png│ └── resources.qrc├── widget.cpp├── widget.h└── widget.ui
该项目中唯一需要添加代码的地方是widget.cpp文件,因为我们需要添加一个图标
#include "widget.h"#include "ui_widget.h"Widget::Widget(QWidget *parent) : QWidget(parent), ui(new Ui::Widget){ ui->setupUi(this); //窗体标题 this->setWindowTitle("Qt5.1 窗体应用"); //窗体 ICO 图片,如图不起别名,后缀直接写图片全名。 this->setWindowIcon(QIcon(":/new/prefix1/ico.png"));}Widget::~Widget(){ delete ui;}
接着在在项目文件夹中手动创建一个CMakeLists.txt文件。内容如下:
cmake_minimum_required(VERSION 2.8.11 FATAL_ERROR)project(helloworld)set(CMAKE_INCLUDE_CURRENT_DIR ON)set(CMAKE_AUTOMOC ON)set(CMAKE_AUTOUIC ON)set(CMAKE_AUTORCC ON)set(RESOURCE_DIR resources/resources.qrc)find_package(Qt5 REQUIRED Widgets)qt5_wrap_cpp( MOC widget.h)qt5_wrap_ui( UIC widget.ui)qt5_add_resources(RCC resources.qrc)add_executable(helloworld main.cpp widget.cpp widget.h widget.ui ${RESOURCE_DIR})target_link_libraries(helloworld Qt5::Widgets)
最后的项目组成如下:
├── CMakeLists.txt├── CMakeLists.txt.user├── helloworld.pro├── helloworld.pro.user├── main.cpp├── resources│ ├── ico.png│ └── resources.qrc├── widget.cpp├── widget.h└── widget.ui
最后,你可以关闭之前创建的helloworld项目,直接打开CMakeLists.txt文件,一开始会弹出一个configure窗口,直接configure就可以实现项目配置,即使没有弹出这个窗口也没关系,直接快捷键保存该文件,系统就会直接configure和generate. 最后选中项目右键点击运行项目即可。
总结:该项目只是一个演示,还是太简单了,后期会讲解一个较为复杂一点的用cmake构建的项目,囊括第三方库的开发
- 用cmake构建基于qt5.8.0的qt5项目
- 用CMake构建Qt5项目
- QT5.3 下的CMAKE MANUAL
- Qt5 By CMake
- Qt5.7 CMake
- 基于Qt5的QGIS编译
- qt5
- qt5
- QT5
- 构建Qt5开发环境
- cmake编译QT5串口通信
- OpenCV3.2+Qt5.8.0+Win10配置和使用----(2)CMake的安装
- Qt5下通过CMake创建CTK插件的步骤
- 基于Qt5图形视图框架的“俄罗斯方块”
- 基于FL2440的QT5.6.0移植记录
- 基于Qt5.x的QCA加解密开源项目的编译过程
- Qt4的项目迁移到qt5
- Qt5的widget项目文件解析
- 关于MySQL desc关键字误用为自定义属性引发的错误
- sql server游标
- 漫游Kafka之过期数据清理
- redis安装
- (翻) 使用webstorm 调试react native 遇到的坑。
- 用cmake构建基于qt5.8.0的qt5项目
- 例题6-13 古代象形符号(Ancient Messages, World Finals 2011, UVa 1103)
- 机器学习中常常提到的正则化 详解
- springmvc使用CommonsMultipartFile上传
- 一 了解java
- 面试题50. 树中两个结点的最低公共祖先结点
- Spring-Bean的定义装配以及作用域的注解实现
- PAT 1005. 继续(3n+1)猜想 (25)
- Qt 之 使用 Model-View(模型视图框架)动态的加载显示数据