在VS2013上使用protobuf构建应用程序时出错

时间:2015-07-31 10:19:52

标签: c++ visual-studio protocol-buffers

我是protobuf的新手。我做了谷歌提出的教程,一切都很好。我现在正在尝试使自己的应用程序工作,我得到一个我不理解的错误。

Error   1   error LNK2019: unresolved external symbol __imp__close referenced in function "public: bool __thiscall google::protobuf::io::FileInputStream::CopyingFileInputStream::Close(void)" (?Close@CopyingFileInputStream@FileInputStream@io@protobuf@google@@QAE_NXZ)  D:\Projets\bin\pb_decoder\libprotobuf.lib(zero_copy_stream_impl.obj)    pb_decoder_pck
Error   2   error LNK2019: unresolved external symbol __imp__read referenced in function "public: virtual int __thiscall google::protobuf::io::FileInputStream::CopyingFileInputStream::Read(void *,int)" (?Read@CopyingFileInputStream@FileInputStream@io@protobuf@google@@UAEHPAXH@Z) D:\Projets\bin\pb_decoder\libprotobuf.lib(zero_copy_stream_impl.obj)    pb_decoder_pck
Error   3   error LNK2019: unresolved external symbol __imp__write referenced in function "public: virtual bool __thiscall google::protobuf::io::FileOutputStream::CopyingFileOutputStream::Write(void const *,int)" (?Write@CopyingFileOutputStream@FileOutputStream@io@protobuf@google@@UAE_NPBXH@Z)  D:\Projets\bin\pb_decoder\libprotobuf.lib(zero_copy_stream_impl.obj)    pb_decoder_pck

我现在的代码中没有使用protobuf。我写的唯一的东西是

#include "helloworld.pb.h"

和我的 helloword.proto 看起来像这样:

syntax = "proto3";

message Hello {
  int32 id = 1;
  string name = 2;
}

关于这个问题的任何想法?

未解决的符号对我来说听起来像是一个错误的错误但是libs实际上就在这里。 我在groups.google上发现了一个帖子,指出了一个与我自己的问题非常相似的问题,但它对我没用。

Problem with linking runtime libraries on Windows for C++

上下文

  • protobuf 3.0版
  • IDE:Visual Studio 2013

我的应用程序是一个RTMAPS图表(软件与simulink非常相似),万一有人听说过:)

谢谢你们的帮助!

1 个答案:

答案 0 :(得分:0)

编辑:答案在问题中:)

我在问题中提供的链接实际上就是我的问题的答案。我只是没有正确更正文件。 然而奇怪的是,我是唯一一个在最后一个版本的protobuf(3.0)上出现此错误的人。

以下是链接: Problem with linking runtime libraries on Windows for C++

我希望对某人有所帮助!