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

使用ExternalProject_Add引入Protobuf库后,MSVC编译出现链接错误的解决求助

ExternalProject_Add引入Protobuf库后,MSVC编译出现链接错误的解决求助

我尝试在项目中通过CMake的ExternalProject_Add来引入Protobuf,之后用target_include_directories和target_link_libraries配置依赖。但在MSVC里编译解决方案时,出现了大量链接错误,其中一个错误示例如下:

symbol "struct absl::lts_20230125::from_chars_result __cdecl
absl::lts_20230125::from_chars(char const *,char const *,double &,enum
absl::lts_20230125::chars_format)"
(?from_chars@lts_20230125@absl@@YA?AUfrom_chars_result@12@PEBD0AEANW4chars_format@12@@Z)
referenced in function "double __cdecl
google::protobuf::io::NoLocaleStrtod(char const *,char * *)"
(?NoLocaleStrtod@io@protobuf@google@@YANPEBDPEAPEAD@Z)

以下是我配置ExternalProject_Add引入Protobuf的代码:

ExternalProject_Add(protobuf
PREFIX protobuf
SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../grpc/third_party/protobuf"
CMAKE_CACHE_ARGS
-Dprotobuf_BUILD_TESTS:BOOL=OFF
-Dprotobuf_WITH_ZLIB:BOOL=OFF
-Dprotobuf_ABSL_PROVIDER:STRING=module
-Dutf8_range_DIR:STRING=${CMAKE_CURRENT_BINARY_DIR}/utf8_range/lib/cmake/utf8_range
-Dprotobuf_MSVC_STATIC_RUNTIME:BOOL=OFF
-DCMAKE_INSTALL_PREFIX:PATH=${CMAKE_CURRENT_BINARY_DIR}/protobuf
DEPENDS utf8_range
)

我把Protobuf添加到项目中的配置代码如下:

add_dependencies(${PROJECT_NAME} protobuf)

target_include_directories(${PROJECT_NAME} PRIVATE ${PROJECT_BINARY_DIR}/protobuf/include)

target_link_libraries(${PROJECT_NAME}
debug ${CMAKE_CURRENT_BINARY_DIR}/protobuf/lib/libprotobufd.lib
optimized ${CMAKE_CURRENT_BINARY_DIR}/protobuf/lib/libprotobuf.lib
)

还有另一个类似的链接错误:

external symbol "private: void __cdecl
absl::lts_20230125::log_internal::LogMessage::CopyToEncodedBuffer(class
absl::lts_20230125::string_view,enum
absl::lts_20230125::log_internal::LogMessage::StringType)"
(?CopyToEncodedBuffer@LogMessage@log_internal@lts_20230125@absl@@AEAAXVstring_view@34@W4StringType@1234@@Z)

实在搞不定这些错误,希望能得到大家的帮助。

备注:内容来源于stack exchange,提问作者Vadim

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.22 10:37:58