Eric
Eric

Reputation: 35

Google Protocol buffer c++ link error when trying to use it in project

I am trying to get protocol buffer to work but linking problems occurs.

All the errors looks something along like this

error LNK2019: unresolved external symbol "public: bool __cdecl google::protobuf::MessageLite::ParseFromArray(void const *,int)" (?ParseFromArray@MessageLite@protobuf@google@@QEAA_NPEBXH@Z) referenced in function "void __cdecl ReceiveRequest(bool *)" (?ReceiveRequest@@YAXPEA_N@Z)

I am using visual studio pro 2013 and this is what I have done:

I compiled the protocol buffer and added the libprotobuf.lib to the project(Add->Existing Item->libprotobuf.lib)

I've added the header files in C/C++ -> General -> "Additional Include Directories"

I have tried to add the library all the different ways I know but I still get these linking errors...

Any idea what I might have done wrong?

// Eric

Upvotes: 2

Views: 4170

Answers (2)

user7571807
user7571807

Reputation: 11

You need to include the generated protocol buffer .cc (and maybe the .h) file (ie the file with the specific getters and setters for your specific proto) in your VS project (ie there has to be a little icon for them in the solution explorer) or else visual studio won't generate the code for it and thus there's nothing to link to.

Upvotes: 1

brettwhiteman
brettwhiteman

Reputation: 4452

Make sure you have the correct libraries for your architecture (e.g. x86 / x64).

That has caught me out a few times.

Upvotes: 0

Related Questions