Visual Studio 2022跨平台CMake项目设置VS_STARTUP_PROJECT不生效怎么办
问题根本原因
VS_STARTUP_PROJECT属性仅作用于CMake生成Visual Studio.sln解决方案文件的场景,你当前使用的是VS2022内置的「打开文件夹」式CMake集成模式,不会生成独立的.sln文件,该属性本身就不会在此场景下生效。- 你的顶层CMakeLists.txt路径配置错误:你的目录结构中库文件夹为
_dbe_lib、可执行项目文件夹为_dbe_test,但你写的add_subdirectory参数没有带下划线,即使生成.sln文件也找不到对应的目标项目,属性自然无法生效。
修复步骤
- 首先修正顶层CMakeLists.txt的子目录路径配置,将原内容:
add_subdirectory ("dbe_lib") add_subdirectory ("dbe_test")
修改为:
add_subdirectory ("_dbe_lib") add_subdirectory ("_dbe_test")
- 移除所有CMakeLists.txt中设置
VS_STARTUP_PROJECT的代码,该配置不适用于你当前的开发模式。 - 在VS中右键点击解决方案资源管理器里的
dbe_test可执行目标,选择「设置为启动项」,该配置会自动保存在VS用户配置中,切换目标平台不会丢失。 - 如果需要跨设备、跨团队共用启动项配置,可以在
CMakePresets.json对应配置预设的字段中添加以下规则,提交到代码仓库即可全局生效:
"vendor": { "microsoft.com/VisualStudioSettings/CMake/1.0": { "startupProject": "_dbe_test/dbe_test" } }
内容的提问来源于stack exchange,提问作者Dehim
相关产品推荐
相关产品推荐

