我是 C++ 和 Visual Studio 2012 的新手,所以问题可能出在屏幕和椅子之间。我执行了以下步骤;
- 我使用选项 optimize_for = LITE_RUNTIME 制作了一个简单的原型文件
- 使用 protoc 创建匹配的 h 和 c 文件
- 编译库 libprotobuf-lite.lib
- 创建了一个新的控制台 Visual Studio 2012 项目。
- 复制了我的单个源文件所在的 libprotobuf-lite.lib。
- 创建了一个名为 protobuffers 的新文件夹
- 将 protobuffers src 目录下的 c、h 和 google 目录复制到 protobuffers 文件夹中
- 添加了 protobuffers 文件夹作为附加包含目录
- 通过 Additional Dependencies 将库文件添加到链接器
编译以下源文件;
#include <iostream> #include "protobuffers\genome.pb.h" int main() { genomeMessage::Genome genome; return 0; }
卡住了...我收到以下错误;
1>Source.obj : error LNK2019: unresolved external symbol "public: __cdecl genomeMessage::Genome::Genome(void)" (??0Genome@genomeMessage@@QEAA@XZ) referenced in function main 1>Source.obj : error LNK2019: unresolved external symbol "public: virtual __cdecl genomeMessage::Genome::~Genome(void)" (??1Genome@genomeMessage@@UEAA@XZ) referenced in function main 1>C:\Projects\testproto\x64\Debug\testproto.exe : fatal error LNK1120: 2 unresolved externals
所以我知道它不是丢失的 lib 文件,因为如果我移动 lib 文件,链接器会抱怨它找不到它。问题是我不知道如何解决这个问题......有人吗?