protobuf和pkg-Config缺少libdir和包含

时间:2016-09-08 19:12:22

标签: c++ protocol-buffers pkg-config

我正在尝试为协议缓冲区C ++ AddressBook教程构建二进制文件。我成功地编译了协议缓冲区,但是当我使用g ++构建二进制文件时,我使用pkg-config来获取cflags和libs,并且找不到必要的头文件。我手动将所有必要的标志,包括目录,库目录等传递给g ++并且它有效。

  • pkg-config --cflags protobuf 返回“-pthread”
  • pkg-config --libs protobuf 返回“-lprotobuf -pthread -lpthread”

同时,protobuf.pc列出:

  • Cflags :-I $ {includedir} -pthread
  • Libs: -L $ {libdir} -lprotobuf -pthread -lpthread

我确认使用--variable =(include / libdir)正确设置变量,并且在使用--debug选项时,它确认变量已设置。但是,它还显示删除了-I和-L选项。以下是截断的调试输出。

...Pasing pacage file protobuf.pc...
...Variable declarations...
Unknown keyword 'Libs.private' in protobuf.pc
...More variable declarations...
Adding 'protobuf' to list of known packages
Package protobuf has -I/usr/include in Cflags
Removing -I/usr/include from cflags for protobuf
Package protobuf has -L /usr/lib/x86_64-linux-gnu in Libs
Removing -L /usr/libx86-64-linux-gnu from libs for protobuf

0 个答案:

没有答案