手把手教CMake编译Qt5工程

一、新建CMakeLists.txt

        可以在工程目录下新建一个名为CMakeLists.txt文件,

亦或是,在Qtcreator中,右键项目,添加新文件,选择General中的Empty File,修改名称为CMakeLists.txt。

 

 此时,你会看见生成了一个叫other files的文件夹,里面就有CMakeLists.txt文件

二、编写CMakeLists.txt

1.#设置cmake版本号(视自己cmake版本为定)
2.cmake_minimum_required(VERSION 3.4.0)
3. 
4.#设置工程名称
5.project(QtDemo)
6. 
7.#设置工程包含当前目录,非必须
8.set(CMAKE_INCLUDE_CURRENT_DIR ON)
9. 
10.#打开全局moc,设置自动生成moc文件,一定要设置
11.set(CMAKE_AUTOMOC ON)
12.#打开全局uic,非必须
13.set(CMAKE_AUTOUIC ON)
14.#打开全局rcc,非必须,如需打开,注意修改33行的qrc文件名
15.#set(CMAKE_AUTORCC ON)
16.
17.#查找需要的Qt库文件,最好每一个库都要写,Qt也会根据依赖关系自动添加
18.find_package(Qt5Widgets) 
19.find_package(Qt5Core)
20.find_package(Qt5Gui)
21.
22.#查找当前文件夹中的所有源代码文件,也可以通过Set命令将所有文件设置为一个变量
23.FILE(GLOB SRC_FILES "./*.cpp")
24.#查找设置当前文件夹中所有的头文件
25.FILE(GLOB HEAD_FILES "./*.h")
26.#查找设置当前文件夹中所有的ui文件
27.FILE(GLOB UI_FILES "./*.ui")
28.
29.#通过Ui文件生成对应的头文件,一定要添加
30.qt5_wrap_ui(WRAP_FILES ${UI_FILES})
31.
32.#添加资源文件,非必须,一旦采用,注意修改相应的qrc文件名
33.#set(RCC_FILES rcc.qrc)
34.
35.#将ui文件和生成文件整理在一个文件夹中,非必须
36.source_group("Ui" FILES ${UI_FILES} ${WRAP_FILES} )
37.
38.#创建工程文件
39.add_executable(${PROJECT_NAME} ${SRC_FILES} ${HEAD_FILES} ${RCC_FILES} ${WRAP_FILES})
40.
41.#添加Qt5依赖项
42.target_link_libraries(${PROJECT_NAME} Qt5::Widgets Qt5::Core Qt5::Gui)

三、编译与运行

        在工程文件下新建一个“build”目录

         

1、qtcreator编译

        左侧找到“项目”后点击,在“构建设置”中找到“构建步骤”

        “构建目录”选择我们新建的build文件夹

        删除“qmake”,然后点击“添加构建步骤”中的“自定义处理步骤”

        命令一栏中,填写 “ cmake”

        参数填写  “../”

        make 不用删除,不过要保证在cmake下面,参数选择 -j4

        (-j4 表示用多少个线程进行编译   你要是线程多,可以 -j16或者-j8)

         设置好后,项目处构建加运行,嚯嚯 ,跑起来了!

        

 2、终端编译

        在build目录下,开启终端,然后输入命令:“cmake ../ && make ”(注:make后面参数-j4 可加可不加)

        然后就会看见build目录下生成这些文件

        

         qt_demo就是生成的可执行程序

        然后终端运行 ./qt_demo

        就会看见界面了

        

       

  • 7
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值