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

vcpkg编译protobuf未定义FatalException,如何设置编译时定义PROTOBUF_USE_EXCEPTIONS

解决vcpkg编译protobuf时添加PROTOBUF_USE_EXCEPTIONS宏的方案

方案1:临时单次编译注入宏

  • 打开终端进入vcpkg根目录
  • 执行如下安装命令即可,若需指定目标架构(比如x64 Windows),替换命令中的triplet即可:
    vcpkg install protobuf:x64-windows --x-cmake-predefine=-DPROTOBUF_USE_EXCEPTIONS=ON

方案2:永久修改port配置(适用多环境复用场景)

  • 进入vcpkg安装路径下的ports/protobuf目录,打开portfile.cmake文件
  • 定位到文件中vcpkg_cmake_configure配置块,在参数列表中添加一行:
    -DPROTOBUF_USE_EXCEPTIONS=ON
  • 保存文件后重新执行protobuf安装命令,后续所有重新编译protobuf的操作都会默认携带该宏定义

验证生效方式

安装完成后重新编译你的VS项目,原LNK2001链接报错会消失。若需确认宏是否正确注入,可查看vcpkg安装目录下installed/<对应triplet>/share/protobuf/protobuf-config.cmake文件中是否存在PROTOBUF_USE_EXCEPTIONS的开启配置。

注意:请确保VS项目中PROTOBUF_USE_EXCEPTIONS宏的开启状态和vcpkg编译protobuf时的配置完全一致,避免再次出现符号不匹配问题

内容的提问来源于stack exchange,提问作者Mike Boedigheimer

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 16:45:02