Visual Studio 2022中CMake项目无法添加到指定文件夹的问题
问题:CMake无法将Visual Studio项目归类到指定文件夹
我正尝试用CMake创建Visual Studio 2022解决方案,想要将someexe项目放到exefolder文件夹中,但无论在项目自身的CMake配置还是解决方案级的CMake脚本里设置文件夹属性,项目都没能出现在目标文件夹里。
文件夹结构
root ├── someexe │ └── CMakeLists.txt └── scripts └── x64 └── CMakeLists.txt
项目级CMake配置(someexe\CMakeLists.txt)
cmake_minimum_required(VERSION 3.28) project(someexe) add_executable(${PROJECT_NAME} ../main.cpp) set_target_properties(someexe PROPERTIES FOLDER "exefolder")
解决方案级CMake配置(scripts\x64\CMakeLists.txt)
cmake_minimum_required(VERSION 3.10) project(x64-Platform) set(CMAKE_GENERATOR_PLATFORM x64) add_subdirectory(../../someexe x64_someexe) set_target_properties(someexe PROPERTIES FOLDER "exefolder")
解决办法
1. 统一CMake最低版本
顶层CMake要求的最低版本(3.10)远低于项目使用的3.28,版本差异可能导致属性设置不兼容。将顶层CMake的最低版本同步到3.28:
# 修改scripts\x64\CMakeLists.txt开头 cmake_minimum_required(VERSION 3.28)
2. 确保目标名称引用正确
在项目CMake中,用${PROJECT_NAME}代替硬编码的someexe,避免名称不一致问题:
# 修改someexe\CMakeLists.txt中的属性设置 set_target_properties(${PROJECT_NAME} PROPERTIES FOLDER "exefolder")
3. 清理CMake缓存重新生成
旧的CMake缓存可能保留无效设置,导致新配置不生效:
- 关闭Visual Studio
- 删除
scripts\x64目录下的CMakeFiles文件夹和CMakeCache.txt文件 - 重新打开解决方案,触发CMake重新生成
4. 全局预设项目文件夹
在顶层CMake中设置全局变量,为所有子项目统一指定文件夹,无需逐个项目配置:
# 在scripts\x64\CMakeLists.txt的add_subdirectory之前添加 set(CMAKE_FOLDER "exefolder") add_subdirectory(../../someexe x64_someexe)
内容的提问来源于stack exchange,提问作者chadb
相关产品推荐
相关产品推荐

