首页 > 其他分享 >Qt5 CMake项目简单模板

Qt5 CMake项目简单模板

时间:2022-11-23 15:15:10浏览次数:40  
标签:files set CMake qt ## PROJECT Qt5 CMAKE 模板

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文件需要跟源文件一起作为编译目标的"原材料"

标签:files,set,CMake,qt,##,PROJECT,Qt5,CMAKE,模板
From: https://www.cnblogs.com/djh5520/p/16918352.html

相关文章

  • 数据结构初阶--顺序表(讲解+C++类模板实现)
    顺序的概念与结构顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组上完成数据的增删查改。一般分为两种:静态顺序表和动......
  • 【模板】Tarjan
    postedon2022-07-0720:52:49|under模板|source0x00有向图缩点现有一有向图\(G=(V,E)\),称一个点集\(E'\inE\)为强连通分量,当且仅当\(E'\)的任意两点可以互......
  • 从零开始介绍cmake
    从零开始介绍cmake-bilibili说明cmake的定义是什么?-----高级编译配置工具当多个人用不同的语言或者编译器开发一个项目,最终要输出一个可执行文件或者共享库(dll,so等等......
  • Make 与 CMake
    Make与CMakeCMake入门实战Make......
  • linux下通过rpath解决cmake动态编译后找不到动态链接库问题
    通过cmake编译链接动态库后,会有一个问题,那就是需要的.so文件不能更改目录,一旦.so文件目录变了,整个程序就没法运行了,这肯定是不行的。原因后来我查一下一下,linux系统中,......
  • 使用cmake构建C/C++项目和动态库
    编译C/C++文件时,很多时候都是直接使用像gccmain.c或者g++main.cpp这样的命令编译的。但是代码文件多了后,这样编译就很困难了。这时候就出现了MakeFile这个工具。......
  • Java FreeMarker模板引擎注入深入分析
    0x01前言最近和 F1or 大师傅一起挖洞的时候发现一处某CMSSSTI的0day,之前自己在复现jpress的一些漏洞的时候也发现了SSTI这个洞杀伤力之大。今天来好好系统学习......
  • template模板初步介绍(11)
    template模板文本文件,嵌套有脚本(使用模板编程语言编写)借助模板生成真正的文件,Jinja2语言Jinja2是基于python的模板引擎,功能比较类似于于PHP的smarty,J2ee的Freemarker和......
  • Mat_类模板
    先来段代码感受一下MatC=(Mat_<double>(3,3)<<0,-1,0,-1,5,-1,0,-1,0);MatD=(Mat_<double>(3,3)<<1,2,3,4,6,7,8,9,10);cout<<"C="<<......
  • 归并排序模板
    题目给定你一个长度为n的整数数列。请你使用归并排序对这个数列按照从小到大进行排序。并将排好序的数列按顺序输出。输入格式输入共两行,第--行包含整数n。第二行包含n个整......