2

make protobuf由于以下错误,我无法超越该步骤。我阅读了一些博客,他们建议安装brew install protobuf. 做过某事。仍然无法构建。

我正在 Mac 10.11.6 上构建

make protobuf_dist
c++ -MD -c -o /Users/jsiddharth/Desktop/workspace/test/j2objc-master/protobuf/compiler/build_result/google/protobuf/compiler/j2objc/j2objc_enum.o -x c++ -stdlib=libc++ -Isrc -I../google/src src/google/protobuf/compiler/j2objc/j2objc_enum.cc
In file included from src/google/protobuf/compiler/j2objc/j2objc_enum.cc:35:
In file included from src/google/protobuf/compiler/j2objc/j2objc_enum.h:41:
src/google/protobuf/compiler/j2objc/common.h:44:10: fatal error: 
      'google/protobuf/compiler/code_generator.h' file not found
#include <google/protobuf/compiler/code_generator.h>
         ^
1 error generated.
make[1]: *** [/Users/jsiddharth/Desktop/workspace/test/j2objc-master/protobuf/compiler/build_result/google/protobuf/compiler/j2objc/j2objc_enum.o] Error 1
make: *** [protobuf_compiler_dist] Error 2

编辑

我试图导出到

导出 PROTOBUF_ROOT_DIR=~/Downloads/protobuf-3.0.0/src/

因为我在

/Users/jsiddharth/Downloads/protobuf-3.0.0/src/google/protobuf/compiler/code_generator.h

还是同样的错误。我没有导出正确的变量吗?

编辑

  1. 对于 Mac 系统,Unix 工具默认不可用。您首先需要从 Mac AppStore 安装 Xcode,然后从终端运行以下命令:

  2. $ sudo xcode-select --install

  3. 要安装 Unix 工具,您可以按照https://www.macports.org上的说明安装“port” 。对于大多数 Mac 安装,这将驻留在 /opt/local/bin/port 中。

  4. $ sudo /opt/local/bin/port install autoconf automake libtool

现在我面临以下错误

/Users/jsiddharth/Desktop/workspace/test/j2objc-master/protobuf/compiler/build_result/google/protobuf/stubs/strutil.o /usr/local/lib//libprotobuf.a(strutil.o) ld:55 个重复架构 x86_64 clang 的符号:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)make[1]:* [/Users/jsiddharth/Desktop/workspace/test/j2objc-master/protobuf/compiler/build_result /j2objc_protoc] 错误 1 ​​制作:* [protobuf_compiler_dist] 错误 2

4

1 回答 1

2

Building J2ObjC文档中的Protocol Buffers的可选设置应该可以工作。我认为缺少的步骤是将 PROTOBUF_ROOT_DIR 环境变量定义为 brew 的包含目录根目录(默认为 /usr/local/include):

$ export PROTOBUF_ROOT_DIR=/usr/local/include
$ make protobuf_dist
于 2017-02-02T17:46:49.187 回答