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

如何将add_subdirectory引入的项目放入Visual Studio筛选器?

使用shaderc时清理Visual Studio解决方案的杂乱项目

我在项目中需要用到shaderc,于是将它作为子模块加入,CMake配置如下:

add_subdirectory(3rdparty/shaderc)
target_link_libraries(MyProject PUBLIC shaderc)

但这导致Visual Studio解决方案里塞满了shaderc的各类项目和筛选器(除GLFW3外其余相关项目都来自shaderc),界面非常杂乱。想问有没有办法把这些项目隐藏或者放到单独的筛选器里?


替代解决方案(通过Vulkan SDK链接shaderc)
尝试过将子模块项目隐藏的方案但没能在shaderc上实现,于是转而通过Vulkan SDK来链接shaderc,具体配置如下:

  1. 引入Vulkan并关联shaderc组件
find_package(Vulkan REQUIRED COMPONENTS shaderc_combined)

target_link_libraries(QuickPreviewVisualize PUBLIC ${Vulkan_LIBRARIES})
target_link_libraries(QuickPreviewVisualize PUBLIC ${Vulkan_shaderc_combined_LIBRARY})
target_include_directories(QuickPreviewVisualize PUBLIC ${Vulkan_INCLUDE_DIR})
  1. 区分调试与发布版本的链接库
    为保证调试模式正常运行,需要单独链接调试版本的shaderc_combinedd.lib,可通过字符串替换实现分版本配置:
string(REPLACE ".lib" "d.lib" SHADERC_DEBUG ${Vulkan_shaderc_combined_LIBRARY})

target_link_libraries(QuickPreviewVisualize PUBLIC      
    debug ${SHADERC_DEBUG}  
    optimized ${Vulkan_shaderc_combined_LIBRARY})
  1. 屏蔽缺失pdb文件的警告
    Vulkan SDK提供的shaderc调试版本不附带pdb文件,编译时会产生大量链接警告,可通过以下配置禁用该类警告:
# Vulkan SDK中的shaderc调试版本不提供.pdb文件,因此抑制缺失pdb的警告
target_link_options(MyProject PUBLIC "/ignore:4099")

内容的提问来源于Stack Exchange,提问作者Tare

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 09:52:48