CMake生成Visual Studio工程后头文件不显示的解决咨询
解决Visual Studio中CMake工程头文件筛选器不显示的问题
你当前的CMake脚本已将头文件添加到可执行目标中,但Visual Studio不会自动为外部目录的头文件创建对应筛选器,导致IDE结构里仅能看到源文件,头文件无法直接查看编辑。以下是两种可行的解决方法:
方法一:用source_group手动指定筛选器
修改你的CMakeLists.txt,在add_executable命令后添加以下代码,明确告诉Visual Studio为头文件创建专属筛选器:
# 为头文件创建"Headers"筛选器 source_group("Headers" FILES ${HEADER_FILES}) # 为源文件统一创建"Source Files"筛选器(可选,让结构更规范) source_group("Source Files" FILES ${SRC_FILES})
方法二:采用现代CMake规范组织文件(推荐)
放弃file(GLOB)的方式(CMake不会自动检测新增文件,长期维护性差),改用target_sources明确列出所有文件,并结合source_group(TREE)自动匹配目录结构:
cmake_minimum_required(VERSION 3.21) project(STFTProject) add_executable(STFTProject) # 明确添加所有源文件和头文件 target_sources(STFTProject PRIVATE src/main.cpp src/fft.cpp src/window.cpp Headers/config.hpp Headers/fft.hpp Headers/window.hpp ) # 设置头文件包含目录 target_include_directories(STFTProject PRIVATE Headers ) # 按实际目录结构生成筛选器 source_group(TREE "${CMAKE_CURRENT_SOURCE_DIR}/src" PREFIX "Source Files" FILES src/main.cpp src/fft.cpp src/window.cpp ) source_group(TREE "${CMAKE_CURRENT_SOURCE_DIR}/Headers" PREFIX "Headers" FILES Headers/config.hpp Headers/fft.hpp Headers/window.hpp )
操作步骤
- 保存修改后的
CMakeLists.txt - 删除之前生成的build目录(避免缓存干扰)
- 重新执行命令:
cmake .. -G "Visual Studio 17 2022"生成解决方案 - 打开Visual Studio,即可看到"Headers"筛选器及其中的所有头文件,可直接查看和编辑。
内容的提问来源于stack exchange,提问作者anon
相关产品推荐
相关产品推荐

