cmake_minimum_required(VERSION 3.5)

project(test VERSION 0.1 LANGUAGES CXX)

set(CMAKE_INCLUDE_CURRENT_DIR ON)

set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON) ## qt auto call uic, moc, rcc compilers
set(CMAKE_AUTOUIC ON) # auto call uic compiler to process qt ui files.
set(CMAKE_AUTOMOC ON) # auto call moc compiler to process qt signal-slot source files.
set(CMAKE_AUTORCC ON) # auto call rcc complier to process qt resource files. ## find required libraries
# qt libs
find_package(Qt5 COMPONENTS Widgets REQUIRED)
# boost
find_package(Boost 1.65 REQUIRED COMPONENTS context thread)
# protobuf
find_package(Protobuf REQUIRED) ## common include directories
include_directories(
"${Protobuf_INCLUDE_DIR}"
"${Boost_INCLUDE_DIR}"
) ## common link directories
link_directories(
# "/usr/local/lib"
) ## header files
set(PROJECT_HEADERS
MainWindow.h
) ## source files
set(PROJECT_SOURCES
main.cpp
MainWindow.cpp
) ## qt ui files
set(PROJECT_QUIS
MainWindow.ui
) ## qt resource files
set(PROJECT_QRCS
icons.qrc
) ## build target
add_executable(test
${PROJECT_SOURCES}
${PROJECT_HEADERS}
${PROJECT_QUIS}
${PROJECT_QRCS}
) ## link required libraries
target_link_libraries(test PRIVATE
Qt5::Widgets
${Boost_LIBRARIES}
${Protobuf_LIBRARIES}
)

  基本模板如上,多个子项目的目录可以通过add_subdirectory添加即可,注意:

    1.如果想在Qt Creator中实现快捷键在头文件\源文件\ui文件之间跳转最好将它们放在同一个目录;

    2.Qt资源文件如图标这种需要放在单独的文件夹中,qrc文件本质就是个xml文件描述了资源文件的位置和分组;

    3.ui和qrc文件需要跟源文件一起作为编译目标的"原材料"

Qt5 CMake项目简单模板的更多相关文章

  1. 通过例子进阶学习C++(七)CMake项目通过模板库实现约瑟夫环

    本文是通过例子学习C++的第七篇,通过这个例子可以快速入门c++相关的语法. 1.问题描述 回顾一下约瑟夫环问题:n 个人围坐在一个圆桌周围,现在从第 s 个人开始报数,数到第 m 个人,让他出局:然 ...

  2. day 82 Vue学习二之vue结合项目简单使用、this指向问题

    Vue学习二之vue结合项目简单使用.this指向问题   本节目录 一 阶段性项目流程梳理 二 vue切换图片 三 vue中使用ajax 四 vue实现音乐播放器 五 vue的计算属性和监听器 六 ...

  3. day 81 Vue学习二之vue结合项目简单使用、this指向问题

    Vue学习二之vue结合项目简单使用.this指向问题   本节目录 一 阶段性项目流程梳理 二 vue切换图片 三 vue中使用ajax 四 vue实现音乐播放器 五 vue的计算属性和监听器 六 ...

  4. Visual Studio CMake 项目和 WSL

    Visual Studio CMake 项目和 WSL https://devblogs.microsoft.com/cppblog/c-with-visual-studio-2019-and-win ...

  5. 03 最小CMake项目

    03 最小CMake项目 所有CMake项目都从一个CMakeLists.txt文件开始,此文件应该放在源代码树的最顶层目录下.可以将CMakeLists.txt想象成CMake项目文件,定义了从源和 ...

  6. maven archetype生成自定义项目原型(模板)

    maven archetype可以将一个项目做成项目原型,之后只需要以此原型来创建项目,那么初始创建的项目便具有原型项目中的一切配置和代码.通俗讲就是一个项目模板. eclipse中那些快速生成mav ...

  7. 直接在CMake项目中编译GoogleTest和GoogleMock作为项目的一部分

    直接在CMake项目中编译GoogleTest和GoogleMock作为项目的一部分 本文是关于如何将GoogleTest和GoogleMock在没有预先编译安装在机器的情况下,直接在项目中作为项目的 ...

  8. 再起航,我的学习笔记之JavaScript设计模式30(简单模板模式)

    简单模板模式 概念介绍 简单模板模式(Simple template): 通过格式化字符串拼凑出视图避免创建视图时大量节点操作,优化内存开销. 创建模板 在实际的业务中如果我们需要进行前后台交互,或多 ...

  9. helm-chart-2-chart结构和简单模板

    1, chart 结构介绍 我们创建一个chart 并查看其结构 右侧注释为其文件的的解释 $ helm create mychart $ cd mychart/ $ tree ├── charts ...

  10. vue-cli脚手架搭建项目简单入门一

    搭建系统: Windows系统 简单了解Node.js.npm,安装Node.js,下载网址:http://nodejs.cn/download/ 查看node,npm安装成功与否.打开cmd命令行, ...

随机推荐

  1. Spring IOC官方文档学习笔记(二)之Bean概述

    1.Bean概述 (1) Spring IoC容器管理一个或多个bean,这些bean是根据我们所提供的配置元数据来创建的,在容器内部,BeanDefinition对象就代表了bean的配置元数据,它 ...

  2. CMS可视化---ECharts图表

    一.ECharts介绍 ECharts,全称Enterprise Charts,商业级数据图表,一个纯Javascript的图表库,能够流畅的运行在PC以及移动设备上,兼容当前绝大部分浏览器.为我们许 ...

  3. [生命科学] 生物基础实验之PCR验证

    生物基础实验之PCR验证 文章目录 生物基础实验之PCR验证 实验步骤一 实验步骤二 实验步骤三 配胶 实验步骤四 电泳 实验步骤五 跑胶 实验步骤一 在离心管加入7.5μL Master Mix 溶 ...

  4. [seaborn] seaborn学习笔记9-绘图实例(1) Drawing example(1)

    文章目录 9 绘图实例(1) Drawing example(1) 1. Anscombe's quartet(lmplot) 2. Color palette choices(barplot) 3. ...

  5. 题解 P5607 [Ynoi2013] 无力回天 NOI2017

    简要题意 其实我觉得这个部分可以不要,因为这道题的题面还是很清晰的. 你需要维护一个数据结构,支持区间异或和区间求与 \(v\) 的最大异或和. 思路 对于这种区间问题,最容易想到的就是 分块 线段树 ...

  6. 【Azure Developer】在Github Action中使用Azure/functions-container-action@v1配置Function App并成功部署Function Image

    问题描述 使用Github Action,通过 Azure/functions-container-action@v1 插件来完成 yaml 文件的配置,并成功部署Function Image 的过程 ...

  7. 通俗易懂angular搭建

  8. 12月6日内容总结——BOM、DOM、两者查找标签的方式和操作标签的方式、操作class和css的方法、事件、jQuery类库

    目录 一.BOM操作 BOM概念 window对象 window的子对象 navigator对象(了解即可) screen对象(了解即可) history对象(了解即可) location对象 弹出框 ...

  9. requests进行webdriver协议,模仿selenium

    准备工作 你在做下面的练习之前应该具备 安装好chrome,并通过chrome://version确认其版本号 安装chromedriver并与你的chrome版本相匹配,下载路径如下 https:/ ...

  10. excel空格处理

    private String StringTrim(String str){ return str.replaceAll("[\\s\\u00A0]+","") ...