Chinaunix首页 | 论坛 | 博客
  • 博客访问: 23015
  • 博文数量: 18
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 190
  • 用 户 组: 普通用户
  • 注册时间: 2021-06-07 17:12
个人简介

对嵌入式、QT、桌面开发感兴趣

文章分类
文章存档

2023年(2)

2022年(16)

我的朋友

分类: C/C++

2022-09-06 16:39:34

参考资料:cmake.org/cmake/help/latest/manual/cmake-qt.7.html
1. 创建文件
  1. $ mkdir qt_cmake
  2. $ cd qt_cmake
  3. $ touch hello.cpp
  4. $ touch CMakeLists.txt
2. 文件内容
hello.cpp

  1. #include <QApplication>
  2. #include <QWidget>
  3. #include <QGridLayout>
  4. #include <QLabel>

  5. int main(int argc, char *argv[]) {

  6.     QApplication app(argc, argv);

  7.     QWidget widget;
  8.     widget.resize(640, 480);
  9.     widget.setWindowTitle("Hello, world!!!");

  10.     QGridLayout *gridLayout = new QGridLayout(&widget);

  11.     QLabel * label = new QLabel("Hello, world!!!");
  12.     label->setAlignment(Qt::AlignVCenter | Qt::AlignHCenter);
  13.     gridLayout->addWidget(label);

  14.     widget.show();

  15.     return app.exec();
  16. }


CMakeLists.txt

  1. cmake_minimum_required(VERSION 3.5)
  2. project(hello)

  3. set(CMAKE_INCLUDE_CURRENT_DIR ON)
  4. set(CMAKE_AUTOUIC ON)
  5. set(CMAKE_AUTOMOC ON)
  6. set(CMAKE_AUTORCC ON)
  7. set(CMAKE_CXX_STANDARD 11)
  8. set(CMAKE_CXX_STANDARD_REQUIRED ON)
  9. find_package(Qt5 COMPONENTS Core Gui Widgets REQUIRED)



  10. set (SRCS
  11. CMakeLists.txt
  12. hello.cpp
  13. )


  14. add_executable(${CMAKE_PROJECT_NAME} ${SRCS})

  15. target_link_libraries(${CMAKE_PROJECT_NAME} PRIVATE Qt5::Core Qt5::Gui Qt5::Widgets)


3. 编译运行

  1. $ mkdir build
  2. $ cmake ..
  3. $ make
  4. $ ./hello
4. 运行效果

5. 问题
cmake 可能提示 “By not providing "FindQt5.cmake" in CMAKE_MODULE_PATH this project .....” 是 cmake 找不到 qt 安装位置,可以在通过在 cmake 配置生成阶段定义 CMAKE_PREFIX_PATH 解决

  1. $ cmake .. -DCMAKE_PREFIX_PATH:STRING=/home/sunhx/Qt5.14.2/5.14.2/gcc_64
  2. $ cmake --build .
  3. $ ./hello





阅读(803) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~