如何强制Visual Studio不链接vcpkg自动引入的指定第三方库
禁止vcpkg自动链接指定boost_thread库的配置方案
你可以通过以下两种Visual Studio项目配置方式实现需求,操作都无需修改vcpkg本身的配置:
方法1:仅忽略指定的boost_thread库(推荐,影响范围最小)
该方案直接屏蔽自动注入的boost_thread-vc140-mt.lib,不影响其他vcpkg依赖的自动链接逻辑:
- 右键点击目标项目,选择「属性」打开项目配置页,首先顶部选择你需要生效的配置和平台(建议先选「所有配置」+「所有平台」,避免不同构建配置漏配)
- 依次展开侧边栏:配置属性 -> 链接器 -> 输入
- 找到「忽略特定默认库」配置项,添加
boost_thread-vc140-mt.lib,多个需要忽略的库用分号分隔即可 - 保存配置后重新生成项目,该库就不会被自动链接
方法2:完全关闭vcpkg自动链接,手动管理所有依赖
如果需要更精细的控制所有库的链接行为,可以用这个方案:
- 打开项目配置页,选择对应生效的配置和平台
- 展开侧边栏:配置属性 -> vcpkg
- 找到「自动链接」选项,设置为
否 - 后续你需要手动在「链接器」->「输入」->「附加依赖项」中添加所有实际用到的vcpkg库,不会再有自动注入的依赖
补充局部生效方案
如果仅需要在个别源文件中禁用该库的链接,可以直接在对应源文件的最顶部添加预处理指令:
#pragma comment(linker, "/NODEFAULTLIB:boost_thread-vc140-mt.lib")
不需要修改全局项目配置,适配性更强。
内容的提问来源于stack exchange,提问作者Mr. Boy
相关产品推荐
相关产品推荐

