如何在VSCode中修改.obj和.pdb文件的编译输出路径?
解决C++项目编译产物.obj/.pdb存放至obj文件夹的问题
一、Visual Studio 项目配置步骤(主流场景)
- 右键项目 → 属性 → 配置属性 → 常规
- 把「输出目录」设为
$(SolutionDir)bin\$(Platform)\$(Configuration)\(保证bin文件夹正常生成) - 把「中间目录」设为
$(SolutionDir)obj\$(Platform)\$(Configuration)\
- 把「输出目录」设为
- 配置属性 → C/C++ → 输出文件
- 将「程序数据库文件名」修改为
$(IntDir)vc$(PlatformToolsetVersion).pdb(让pdb文件跟随中间目录路径)
- 将「程序数据库文件名」修改为
- 配置属性 → 链接器 → 调试
- 若需最终pdb文件留在bin文件夹,保持「生成程序数据库文件」为
$(OutDir)$(TargetName).pdb;若要放到obj文件夹,修改路径为$(IntDir)$(TargetName).pdb
- 若需最终pdb文件留在bin文件夹,保持「生成程序数据库文件」为
二、常见错误排查
- 手动创建
obj文件夹,或者在项目常规属性里勾选「生成时创建目录」选项 - 检查路径是否包含特殊字符、空格,优先用相对路径避免绝对路径的权限或识别问题
- 执行清理后重新生成:菜单栏 → 生成 → 清理解决方案,再重新生成整个项目
三、CMake项目配置方案
在CMakeLists.txt中添加以下配置:
# 设置最终产物输出到bin文件夹 set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/bin) set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/bin) set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/bin) # 区分Debug/Release模式,将.obj和.pdb定向到obj文件夹 set(CMAKE_CXX_OUTPUT_EXTENSION_REPLACE ON) set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CMAKE_SOURCE_DIR}/bin/Debug) set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_SOURCE_DIR}/bin/Release) set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /Fo${CMAKE_SOURCE_DIR}/obj/Debug/ /Fd${CMAKE_SOURCE_DIR}/obj/Debug/") set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /Fo${CMAKE_SOURCE_DIR}/obj/Release/ /Fd${CMAKE_SOURCE_DIR}/obj/Release/")
内容的提问来源于stack exchange,提问作者Cai Lewendon
相关产品推荐
相关产品推荐

