正如标题所述,我无法protobuf成功链接。
这是一个小型测试程序。请注意AddressBook
类是在我编译protobuf时生成的protoc编译器中生成的。此外,此proto文件是源代码中包含的googles protobuf示例的一部分。
#define PROTOBUF_USE_DLLS
#include <iostream>
#include "addressbook.pb.h"
#pragma comment(lib, "libprotocd.lib")
#pragma comment(lib, "libprotobufd.lib")
#pragma comment(lib, "libprotobuf-lited.lib")
int main(int argc, const char* argv[])
{
tutorial::AddressBook ab;
return 0;
}
以下是我收到的错误。
LNK2001: unresolved external symbol "class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const * const google::protobuf::internal::empty_string_" (?empty_string_@internal@protobuf@google@@3PEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@EB)
LNK2001: unresolved external symbol "__int64 google::protobuf::internal::empty_string_once_init_" (?empty_string_once_init_@internal@protobuf@google@@3_JA)
一些断言:
debug
目标和release
(当使用版本从库名称中删除尾随d
时)尝试了此目标include
和library
目录。 linker --> General --> Additional Library Directories
设置为已编译的.dll所在的位置此时我几乎把注意力转向谷歌,看看我能找到什么。我遇到了以下情况。
仍然无法超越上述错误。非常感谢任何帮助。