无法从google协议缓冲区中编译示例

问题描述 投票:11回答:3

我为其他主题而设,但是他们没有帮助我=(。在我的工作服务器上,我没有sudo特权,因此我使用[]安装PB

./ configure --prefix = / home / username / local

然后,我使用“ person”示例创建源文件,并使用协议成功对其进行编译。

我没有pkg-info =(。我尝试用它编译

g ++ -I / home /用户名/本地/包括-L / home /用户名/本地/ lib -lprotobuf-lpthread main.cpp person.pb.cc

然后有十亿个模拟错误,即

person.pb.cc :(。text + 0x4cf):未定义的引用google :: protobuf :: internal :: kEmptyString'

我认为链接存在问题,但是如何解决?

echo $ LD_LIBRARY_PATH/ home / username / local / lib

在main.cpp中:

#include "person.pb.h"
...

谢谢。

我为其他主题提供了grep,但它们对我没有帮助=(。在我的工作服务器上,我没有sudo特权,因此我使用./configure --prefix = / home / username / local安装PB然后创建源文件与“ ...

c++ linux compiler-errors g++ protocol-buffers
3个回答
21
投票

将库放在最后:


2
投票

库链接标志位于编译器参数的末尾:


0
投票

还有一个相当普遍的问题,它不仅只适用于链接protobuf,还适用于其他库。由于这是我的问题,因此我将解决方案放在这里,也许有人会觉得有用。

© www.soinside.com 2019 - 2024. All rights reserved.