pro 传cmakelist

发布时间:2026/10/15 22:58:54
pro 传cmakelist cmake_minimum_required(VERSION 3.16) project(VpxPcieSignalRecordPlayback VERSION 1.0.0 LANGUAGES CXX) # ─── C 标准 ─── set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_AUTOMOC ON) # 自动处理 Q_OBJECT 的 moc set(CMAKE_AUTORCC ON) # 自动处理 .qrc 资源文件 set(CMAKE_AUTOUIC ON) # 自动处理 .ui 文件 # ─── Qt 模块 ─── find_package(Qt5 REQUIRED COMPONENTS Core Gui Widgets Sql Xml SerialPort PrintSupport ) # ─── 源文件列表 ─── set(SOURCES main.cpp MainWindow.cpp # eLog eLog/Log.cpp # Easylogging 核心 .cc 文件 Extern/Logs/EasyLogging.cc # 网络 Network/FtpComunicate.cpp Network/UdpSocket.cpp Network/monitorudpsocket.cpp # 串口 Serial/SerialCtrl.cpp Serial/SerialFrameProcess.cpp # 数据库 Database/DbManager.cpp Database/LogDbManager.cpp # 工具 Utils/FileUtils.cpp Utils/UserTips.cpp Utils/Utils.cpp # 设置 Settings/Setting.cpp ) # ─── 头文件路径 ─── set(HEADERS MainWindow.h DataInterception.h DataPlayBack.h # ... 省略其他CMake 不需要显式列出头文件 # 但建议列出来让 IDE 识别 ) # ─── UI 文件 ─── set(UI_FILES MainWindow.ui ) # ─── 资源文件 ─── set(RESOURCE_FILES Resources/qss.qrc Resources/images.qrc ) # ─── 创建可执行文件 ─── add_executable(${PROJECT_NAME} ${SOURCES} ${UI_FILES} ${RESOURCE_FILES} ico/satellite.rc # Windows 资源文件 ) # ─── 包含路径 ─── target_include_directories(${PROJECT_NAME} PRIVATE ${CMAKE_SOURCE_DIR} ${CMAKE_SOURCE_DIR}/eLog ${CMAKE_SOURCE_DIR}/Extern/Logs # ← EasyLogging.h 路径 ) # ─── 预定义宏对应 .pro 的 DEFINES ─── target_compile_definitions(${PROJECT_NAME} PRIVATE QT_DEPRECATED_WARNINGS _AFXDLL # Easylogging 配置宏 ELPP_QT_LOGGING ELPP_FEATURE_ALL ELPP_STL_LOGGING ELPP_STRICT_SIZE_CHECK ELPP_UNICODE ELPP_MULTI_LOGGER_SUPPORT ELPP_THREAD_SAFE ELPP_LOGGING_FLAGS_FROM_ARG # QCustomPlot QCUSTOMPLOT_USE_OPENGL ) # ─── 链接库 ─── target_link_libraries(${PROJECT_NAME} PRIVATE Qt5::Core Qt5::Gui Qt5::Widgets Qt5::Sql Qt5::Xml Qt5::SerialPort Qt5::PrintSupport # FFTW ${CMAKE_SOURCE_DIR}/Extern/fftw/x64/libfftw3-3.lib # Windows 系统库 setupapi opengl32 glu32 ) # ─── 设置输出目录 ─── set_target_properties(${PROJECT_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CMAKE_SOURCE_DIR}/bin/Debug RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_SOURCE_DIR}/bin/Release ) # ─── Windows 资源文件 ─── if(WIN32) set_target_properties(${PROJECT_NAME} PROPERTIES WIN32_EXECUTABLE TRUE ) endif()QT core gui sql xml serialport #CONFIG c11 debug_and_release greaterThan(QT_MAJOR_VERSION, 4): QT widgets printsupport TARGET xxx TEMPLATE app CONFIG(release){ MOC_DIR temp/release/moc OBJECTS_DIR temp/release/obj DESTDIR bin/Release } CONFIG(debug,debug|release){ MOC_DIR temp/debug/moc OBJECTS_DIR temp/debug/obj DESTDIR bin/Debug } msvc:QMAKE_CXXFLAGS -source-charset:utf-8 #DEFINES PROJECT_70402 #win32{ #contains(QT_ARCH, i386){ ##Windows x86 (32bit) specific build here #message(32-bit) #LIBS $$PWD/glog/glog_win/x86/libglog.a #INCLUDEPATH glog/glog_win #} else { ##Windows msvc x64 (64bit) specific build here #message(64-bit) #LIBS $$PWD/glog/glog_win/x64/glogd.lib #INCLUDEPATH glog/glog_win #} #} win32{ win32-msvc*{ MSVC_VER $$(VisualStudioVersion) equals(MSVC_VER, 14.0){ contains(QT_ARCH, i386){ message(msvc 2015 32) } else { message(msvc 2015 64) } } } else { contains(QT_ARCH, i386){ message(mingw 32) } else { message(mingw 64) } } } #INCLUDEPATH interface DEFINES QT_DEPRECATED_WARNINGS include(Extern/qtSingleApplication/QtSingleApplication.pri) DEFINES ELPP_QT_LOGGING \ ELPP_FEATURE_ALL \ ELPP_STL_LOGGING \ ELPP_STRICT_SIZE_CHECK ELPP_UNICODE \ ELPP_MULTI_LOGGER_SUPPORT \ ELPP_THREAD_SAFE \ ELPP_LOGGING_FLAGS_FROM_ARG SOURCES \ Extern/Logs/EasyLogging.cc \ HEADERS \ FormUnitTest.h \ MainWindow.h \ Extern/Logs/EasyLogging.h \ config.h \ FORMS \ FormUnitTest.ui \ MainWindow.ui \ RC_FILE ico/satellite.rc INCLUDEPATH \ eLog \ Extern/Logs \ Settings # FFT LIBS -L$$PWD/Extern/fftw/x64/ -llibfftw3-3 INCLUDEPATH $$PWD/Extern/fftw DEPENDPATH $$PWD/Extern/fftw LIBS -lsetupapi #LIBS -liphlp #QCustomPlot DEFINES QCUSTOMPLOT_USE_OPENGL LIBS -lopengl32 -lglu32 INCLUDEPATH Extern/QCustomPlot/ RESOURCES \ Resources/qss.qrc \ Resources/images.qrc DISTFILES

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询