C ++ Linux Google协议缓冲区 - 无法从教程

时间:2016-07-17 21:03:49

标签: c++ g++ protocol-buffers

我跟随cpp tutorial on google protocol buffers

我在Ubuntu上安装了Google Protocol Buffers并编译了.proto文件,因此我获得了pb.h和pb.cc生成的文件。

enter image description here

我使ReadAddressBook.cpp非常小。它只是创建proto对象并验证版本是否匹配。

#include <iostream>
#include <fstream>
#include <string>
#include "address_book.pb.h"
using namespace std;

int main(){

 GOOGLE_PROTOBUF_VERIFY_VERSION;

 tutorial::AddressBook address_book;

return 0;
}

我用

编译了它
g++ -c ReadAddressBook.cpp

(同样使用g ++ -c ReadAddressBook.cpp -lprotobuf -lpthread但它给出了相同的结果)

但是在跑步时:

g++ -o ReadAddressBook ReadAddressBook.o

enter image description here

它给了我对谷歌protobuf src的引用不可用。为什么会这样?

1 个答案:

答案 0 :(得分:0)

您需要将-lprotobuf添加到链接阶段,但看起来您尝试在编译阶段使用它。也就是说,你想做:

g++ -c ReadAddressBook.cpp
g++ -o ReadAddressBook ReadAddressBook.o -lprotobuf -lpthread