gpt4 book ai didi

c++ - "decode"Visual Studio 链接错误怎么办?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:29:37 24 4
gpt4 key购买 nike

我在 C++ 方面不是很有经验,当我不得不使用另一个库并且遇到链接错误时,我对编译器试图告诉我的内容一无所知(除了它不能在某处找到一些引用)。

是否有任何好的链接可以详细描述链接错误消息中符号和字符的含义?或者如何解决此类错误?

例如,这是我最近收到的链接错误:

testproj error LNK2019: unresolved external symbol "public: __thiscall google::protobuf::internal::GeneratedMessageReflection::GeneratedMessageReflection(class google::protobuf::Descriptor const *,class google::protobuf::Message const *,int const * const,int,int,int,class google::protobuf::DescriptorPool const *,int)" (??0GeneratedMessageReflection@internal@protobuf@google@@QAE@PBVDescriptor@23@PBVMessage@23@QBHHHHPBVDescriptorPool@23@H@Z) referenced in function "void __cdecl testproj::protobuf_BuildDesc_def_2eproto_AssignGlobalDescriptors(class google::protobuf::FileDescriptor const *)" (?protobuf_BuildDesc_def_2eproto_AssignGlobalDescriptors@testproj@@YAXPBVFileDescriptor@protobuf@google@@@Z)

最佳答案

这些符号是函数名称的“错位”版本。基本上是因为 c++ 重载(2 个具有不同签名的函数可以具有相同的名称)。签名信息被编码到名称中。

您粘贴的消息有编码和纯文本版本。

public: __thiscall google::protobuf::internal::GeneratedMessageReflection::GeneratedMessageReflection(class google::protobuf::Descriptor const *,class google::protobuf::Message const *,int const * const,int,int,int,class google::protobuf::DescriptorPool const *,int)

?0GeneratedMessageReflection@internal@protobuf@google@@QAE@PBVDescriptor@23@PBVMessage@23@QBHHHHPBVDescriptorPool@23@H@Z)

是一样的东西,只是后者被破坏了。

请注意,损坏的版本开始于:

?0GeneratedMessageReflection@internal@protobuf@google

这很好地对应于:

google::protobuf::internal::GeneratedMessageReflection

因为前几行为您提供了相关信息,您几乎可以忽略损坏的版本。签名的纯文本版本足以修复链接器错误。

关于c++ - "decode"Visual Studio 链接错误怎么办?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/730700/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com