由于以下错误,我无法超越 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
编辑
我尝试导出到
export PROTOBUF_ROOT_DIR=~/Downloads/protobuf-3.0.0/src/
自从我在
中找到code_generator.h/Users/jsiddharth/Downloads/protobuf-3.0.0/src/google/protobuf/compiler/code_generator.h
还是同样的错误。我没有导出正确的变量吗?
编辑
对于 Mac 系统,Unix 工具默认不可用。您首先需要从 Mac AppStore 安装 Xcode,然后从终端运行以下命令:
$ sudo xcode-select --install
要安装 Unix 工具,您可以按照 https://www.macports.org 中的说明安装“port” 。对于大多数 Mac 安装来说,这将驻留在/opt/local/bin/port 中。
$ 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 duplicate symbols for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation) make[1]: * [/Users/jsiddharth/Desktop/workspace/test/j2objc-master/protobuf/compiler/build_result/j2objc_protoc] Error 1 make: * [protobuf_compiler_dist] Error 2
最佳答案
Optional Setup for Protocol Buffers在 Building J2ObjC文档应该有效。我认为缺少的步骤是为brew的包含目录根定义一个PROTOBUF_ROOT_DIR环境变量(默认情况下是/usr/local/include):
$ export PROTOBUF_ROOT_DIR=/usr/local/include
$ make protobuf_dist
关于java - j2objc/usr/local/lib//libprotobuf.a(strutil.o) ld : 55 duplicate symbols for architecture x86_64,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41995584/