[②CMake]: 用CMake编译Qt5程序

前言

编写Qt5可以用本身自带的QtCreator IDE工具,如果不喜欢使用繁琐的图形界面IDE工具的话,也可以使用CMake来编译Qt5,本篇博客就来简单介绍下对应的CMakeLists.txt的写法。

环境

Ubuntu 18.04
Qt5.9.9
CMake 3.10.2

CMakeLists.txt样例

先上整个CMakeLists.txt的样例:

cmake_minimum_required(VERSION 3.5)

project(softscope LANGUAGES CXX)

set(CMAKE_INCLUDE_CURRENT_DIR ON)

set(CMAKE_PREFIX_PATH /opt/Qt5.9.9/5.9.9/gcc_64)
# set(Qt5Charts_DIR /opt/Qt5.9.9/5.9.9/gcc_64/lib/cmake/Qt5Charts/)

set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)

set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin)

# add Qt5 library
find_package(Qt5 COMPONENTS Widgets REQUIRED)
find_package(Qt5Charts)

set(SOFT_SCOPE_HEADERS
  mainwindow.hpp
  scopewidget.hpp
)

set(SOFT_SCOPE_SOURCES
  main.cpp
  mainwindow.cpp
  scopewidget.cpp
)

add_executable(softscope
  ${SOFT_SCOPE_SOURCES}
  mainwindow.ui
  res.qrc
)

target_link_libraries(softscope PRIVATE Qt5::Widgets Qt5::Charts -pthread)
  • set(CMAKE_PREFIX_PATH /opt/Qt5.9.9/5.9.9/gcc_64):添加软件/库的安装路径前缀,供find_package使用。

  • set(CMAKE_AUTOUIC ON)
    set(CMAKE_AUTOMOC ON)
    set(CMAKE_AUTORCC ON)

    uic,rcc和moc都是Qt的工具,uic 主要是编译 .ui文件,rcc 主要是编译资源文件.qrc文件,
    moc主要是编译带有Q_OBJECT宏的头文件。全局开启uic,rcc和moc,这里就体现了CMake跨平台,对Qt的兼容性。

  • find_package(Qt5 COMPONENTS Widgets REQUIRED)
    find_package(Qt5Charts)

    添加Qt的库,用了哪些就添加哪些。

  • add_executable(softscope
    ${SOFT_SCOPE_SOURCES}
    mainwindow.ui
    res.qrc)

    添加名为softscope的可执行文件,添加Qt的.ui和.qrc文件。

  • target_link_libraries(softscope PRIVATE Qt5::Widgets Qt5::Charts -pthread)
    最后进行库的链接,在本例中主要用到了Qt的QWidget和QCharts,其中-pthread是格外的,程序里没有用到的话可以不写。

最后使用make来编译程序:

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

李71~李先森

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

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

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

打赏作者

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

抵扣说明:

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

余额充值