Qt5 CMake项目简单模板
2024-09-18 10:10:51
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文件需要跟源文件一起作为编译目标的"原材料"
最新文章
- Win8 WinRT将替换Win32 API程序员何去何从?
- storyBoard配置错误导致崩溃 superview]: unrecognized selector...
- 【POJ】1062 昂贵的聘礼(spfa)
- 学通javaweb 24堂课 学习笔记
- 常用面试sql语句
- C语言-06复杂数据类型-01数组
- bzoj 2286 [Sdoi2011]消耗战 虚树+dp
- ATM取款~~
- Log4Net(一):快速入门
- 【Linux部署 · GIT】在linux系统安装git和配置实现SSH
- 论文笔记-Squeeze-and-Excitation Networks
- 详解zkw算法解决最小费用流问题
- C#连接oracle数据库步骤
- [HNOI2004]树的计数
- IDEA修改编辑背景图片
- C++ 数组和字符串
- Android 自定义弹出框带EditText
- JavaSE基础知识(3)—流程控制结构
- 【CF715E】Complete the Permutations(容斥,第一类斯特林数)
- LeetCode12.整数转罗马数字
热门文章
- python之实现文件的读写
- uniapp中封装一个弹框组件
- JavaScript:对象:如何复制一个对象?浅拷贝与深拷贝
- 周而复始,往复循环,递归、尾递归算法与无限极层级结构的探究和使用(Golang1.18)
- 焦距的物理尺度、像素尺度之间的转换关系以及35mm等效焦距
- [WPF]项目整合Metro和MaterialDesignInXamlToolkit UI框架
- 从0到1手把手实现vite
- absolute定位后居中的方法
- SQL分类-DDL_操作数据库_创建&;查询
- android开发技巧杂谈