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