c++ - 尝试在项目中使用 Google Protocol buffer c++ 链接错误

标签 c++ compiler-errors protocol-buffers linker-errors

我正在尝试让 Protocol Buffer 工作,但出现链接问题。

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

error LNK2019: 未解析的外部符号“public: bool __cdecl google::protobuf::MessageLite::ParseFromArray(void const *,int)” (?ParseFromArray@MessageLite@protobuf@google@@QEAA_NPEBXH@Z)在函数“void __cdecl ReceiveRequest(bool *)”中引用 (?ReceiveRequest@@YAXPEA_N@Z)

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

我编译了 Protocol Buffer 并将libprotobuf.lib添加到项目中(添加->现有项->libprotobuf.lib)

我已经在 C/C++ -> General -> "Additional Include Directories"中添加了头文件

我已尝试以我所知道的所有不同方式添加库,但我仍然遇到这些链接错误...

知道我可能做错了什么吗?

//埃里克

最佳答案

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

关于c++ - 尝试在项目中使用 Google Protocol buffer c++ 链接错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31426340/

相关文章:

c++ - "using namespace"子句在什么范围内有效?

Node.js 和 Protocol Buffer - 如何从帖子中解析 PB

c++ - 如何使用 Protocol Buffers 创建动态消息?

c++ - 模板化类型宏参数中的括号,我不能使用可变参数宏

c++ - tbb::parallel_reduce 和 std::accumulate 的结果不同

java - 为什么我会收到以下错误以及空构造函数中应该有什么?

c++ - 实现纯虚函数:时出现一些错误

c++ - 覆盖 protobuf MergeFrom 与 MergeFromString 中的重复字段

c++ - 我们如何在该类中使用运算符?

c++ - Linux C++ 编译错误