1. 安装Qt5
2.项目src目录如下
以Q提供的example piechartcustomization 为例子
文件如下:
brushtool.cppbrushtool.hcustomslice.cppcustomslice.hmain.cppmainwidget.cppmainwidget.hpentool.cpppentool.hpiechartcustomization.propiechartcustomization.pro.user
注:不需要最后两个文件 piechartcustomization.pro piechartcustomization.pro.user。 将其他文件拷贝到cmake项目中
3.编写CMakeLists.txt
cmake_minimum_required(VERSION 3.21.1)project(piechartcustomization)# 将 CMake 缓存中的 Qt5_DIR 设置为 Qt5Config.cmake 文件的位置set(Qt5_DIR "C:/MySoftware/ProgramTools/Qt/Qt5.15.2/5.15.2/msvc2019_64/lib/cmake/Qt5")message("project=${PROJECT_NAME}")set(CMAKE_INCLUDE_CURRENT_DIR ON)# 是否为 Qt 目标自动处理 uicset(CMAKE_AUTOUIC ON)# 目标属性控制cmake是否检查目标中的C++文件以确定它们# 是否需要运行moc,并创建规则以在适当的时间执行mocset(CMAKE_AUTOMOC ON)# AUTORCC目标属性控制cmake是否创建规则以在适当的时间对后缀为.qrc的源文件执行rccset(CMAKE_AUTORCC ON)# 指定 C++ 版本有两种方法set(CMAKE_CXX_STANDARD 11)set(CMAKE_CXX_STANDARD_REQUIRED ON)find_package(Qt5 COMPONENTS charts widgets core gui REQUIRED)set(qui_SOURCESmain.cppbrushtool.cppcustomslice.cppmainwidget.cpppentool.cpp)SET(qui_HEADERSbrushtool.hcustomslice.hmainwidget.hpentool.h)SET(qui_FORMS)SET(qui_RESOURCES)# 调用预编译器moc,需要使用 QT5_WRAP_CPP宏qt_wrap_cpp(qui_HEADERS_MOC, $(qui_HEADERS))# 使用uic处理 .ui 文件QT5_WRAP_UI(qui_FORMS_HEADERS, $(qui_FORMS))# 使用rcc处理 .qrc 文件#QT5_ADD_RESOURCES(qui_RESOURCES_RCC $(qui_RESOURCES))# 这些生成的中间文件都会在build目录下,这样的话,编译器则不能定位由uic程序# 产生的_ui_mainwindows.h等文件. 所以, 我们需要把build目录添加到包含目录中include_directories(${CMAKE_CURRENT_BINARY_DIR})# 生成可执行文件add_executable(${PROJECT_NAME}${qui_SOURCES}${qui_HEADERS_MOC}${qui_FORMS_HEADERS}${qui_RESOURCES_RCC})# 为target添加需要链接的共享库 两种写法,下面的是Qt5.15开始的target_link_libraries(${PROJECT_NAME}${Qt5Widgets_LIBRARIES}Qt5::CoreQt5::GuiQt5::Charts)install(TARGETS ${PROJECT_NAME}RUNTIME DESTINATION libLIBRARY DESTINATION libARCHIVE DESTINATION lib)
4.使用cmake编译
参考资料 https://blog.csdn.net/qq_34347375/article/details/86530526
