Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 谷歌协议缓冲区c++;尝试在项目中使用时出现链接错误_C++_Compiler Errors_Protocol Buffers_Linker Errors - Fatal编程技术网

C++ 谷歌协议缓冲区c++;尝试在项目中使用时出现链接错误

C++ 谷歌协议缓冲区c++;尝试在项目中使用时出现链接错误,c++,compiler-errors,protocol-buffers,linker-errors,C++,Compiler Errors,Protocol Buffers,Linker Errors,我正试图让协议缓冲区工作,但出现了链接问题 所有的错误看起来都是这样的 错误LNK2019:未解析的外部符号“public:bool\uu cdecl google::protobuf::MessageLite::ParseFromArray(void const*,int)”(?ParseFromArray@MessageLite@protobuf@google@@QEAA_NPEBXH@Z)在函数“void\uu cdecl ReceiveRequest(bool*)”中引用(?Receiv

我正试图让协议缓冲区工作,但出现了链接问题

所有的错误看起来都是这样的

错误LNK2019:未解析的外部符号“public:bool\uu cdecl google::protobuf::MessageLite::ParseFromArray(void const*,int)”(?ParseFromArray@MessageLite@protobuf@google@@QEAA_NPEBXH@Z)在函数“void\uu cdecl ReceiveRequest(bool*)”中引用(?ReceiveRequest@@YAXPEA)_N@Z)

我正在使用visual studio pro 2013,这就是我所做的:

我编译了协议缓冲区并将libprotobuf.lib添加到项目中(Add->Existing Item->libprotobuf.lib)

我已经在C/C++->General->“附加包含目录”中添加了头文件

我试着用我所知道的所有不同的方法添加库,但仍然会出现这些链接错误

知道我做错了什么吗


//Eric

确保您拥有适合您的体系结构的正确库(例如x86/x64)


这几次让我感到困惑。

您需要在VS项目中包含生成的protocol buffer.cc(可能还有.h)文件(即包含特定proto的特定getter和setter的文件)(即在解决方案资源管理器中必须有一个小图标)否则visual studio将不会为其生成代码,因此没有任何链接。

您需要通过将包含目录添加到VC++目录->库目录来引用项目中的.lib。和链接器->输入->其他依赖项中的libprotobuf.lib。我已经尝试过了,它给出了相同的错误。@Eric请确保为所有配置(即不仅仅是调试或发布)添加libs(如Robot Mess建议的)。这让我多次感到困惑——这可能是您的问题所在。另外,请确保您的体系结构(x86/x64等)具有正确的LIB。选择了“所有配置”,但仍会产生此错误。我真的不知道会出什么问题…欢迎来到StackOverflow!虽然答案总是值得赞赏的,但这个问题是在几年前提出的,并且已经有了一个公认的解决方案。请尝试通过提供答案来避免将问题“撞”到顶部,除非该问题尚未标记为已解决,或者您找到了一种更好的解决问题的替代方法:)