You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用CMake生成与源目录结构一致的MSVC Qt项目文件?

CMake生成MSVC项目时匹配源码目录结构的解决方法

关键操作步骤

假设你的源码里有Source目录,里面包含各级子文件夹和源文件,按以下方式修改CMakeLists.txt即可:

  1. 递归收集源文件(保留相对路径)
    用file(GLOB_RECURSE)把Source下的所有源文件、头文件(含Qt的ui/qrc文件)都收集起来,确保路径是相对于项目根目录的:
file(GLOB_RECURSE PROJECT_SOURCES
    "${CMAKE_CURRENT_SOURCE_DIR}/Source/*.cpp"
    "${CMAKE_CURRENT_SOURCE_DIR}/Source/*.h"
    "${CMAKE_CURRENT_SOURCE_DIR}/Source/*.ui"
    "${CMAKE_CURRENT_SOURCE_DIR}/Source/*.qrc"
)
  1. 映射目录结构到MSVC
    创建可执行文件后,用source_group(TREE)命令将源码的目录结构直接同步到MSVC项目中:
add_executable(YourProjectName ${PROJECT_SOURCES})

# 核心:把源码根目录作为树的起点,让MSVC显示和源码一致的目录
source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR} FILES ${PROJECT_SOURCES})
  1. Qt项目常规配置(按需添加)
    如果是Qt项目,别忘了添加依赖模块:
find_package(Qt6 REQUIRED COMPONENTS Core Widgets)
target_link_libraries(YourProjectName PRIVATE Qt6::Core Qt6::Widgets)

验证

重新运行CMake生成解决方案,打开MSVC 2022后点击"显示所有文件",就能看到Source文件夹和源码里的结构完全一致,文件会按实际子目录排列,不再堆在项目根目录。

内容的提问来源于stack exchange,提问作者Idris Khan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 10:13:30