致命错误:找不到“ google / protobuf / compiler / plugin.h”文件

时间:2019-03-05 10:40:45

标签: import terminal protocol-buffers homebrew protoc

我正在从these sources编译Google protobuf插件。

我已经用homebrew命令安装了protobuf@2.5

  

简单安装protobuf@2.5

安装后,通过调用make进行编译时出现以下错误:

Richards-Mac-mini:protobuf-objc-arc richard$ make
/Applications/Xcode.app/Contents/Developer/usr/bin/make  all-recursive
Making all in src/compiler
g++ -DHAVE_CONFIG_H -I. -I../..     -g -O2 -DNDEBUG -MT main.o -MD -MP -MF .deps/main.Tpo -c -o main.o main.cc
main.cc:17:10: fatal error: 'google/protobuf/compiler/plugin.h' file not found
#include <google/protobuf/compiler/plugin.h>
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.
make[2]: *** [main.o] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2

特别是这一行很有趣:

  

严重错误:找不到“ google / protobuf / compiler / plugin.h”文件

虽然我绝对可以转到此路径并找到plugin.h文件:

  

/usr/local/Cellar/protobuf@2.5/2.5.0/include/google/protobuf/compiler/plugin.h

screenshot

看起来,好像库没有与二进制文件正确链接,并且问题与正确的路径有关。

当我尝试发出命令which protoc时,我得到:

  

/usr/local/opt/protobuf@2.5/bin/protoc

protoc --version会导致以下输出,这是预期的。

  

libprotoc 2.5.0

1 个答案:

答案 0 :(得分:0)

通过发出以下命令修复:

  

brew link --force --overwrite protobuf250

输出:

Linking /usr/local/Cellar/protobuf@2.5/2.5.0... 14 symlinks created

If you need to have this software first in your PATH instead consider running:
  echo 'export PATH="/usr/local/opt/protobuf@2.5/bin:$PATH"' >> ~/.bash_profile

然后:

  

echo'export PATH =“ / usr/local/opt/protobuf@2.5/bin:$ PATH”'>>   〜/ .bash_profile

成功链接后,我能够毫无错误地编译Objective-C插件。