java - j2objc/usr/local/lib//libprotobuf.a(strutil.o) ld : 55 duplicate symbols for architecture x86_64

标签 java protocol-buffers j2objc

由于以下错误,我无法超越 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

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

编辑

  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 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 BuffersBuilding 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/

相关文章:

java - 可以在 javaFX 框架内打开另一个应用程序吗?

python - Tensorflow 从源代码构建,不能包含 contrib

objective-c - 在文件夹引用模式下添加文件时,Xcode 找不到头文件

ios - 如何在swift框架中链接JRE.framework

ios - 无法使用终端安装 J2OBJC

java - 如何对 MongoDB 文档的字段执行原子更新?

java - 是否有一种与数据库无关的方法来确定 JDBC 中常见的 SQL 错误?

java - 如何从 java 类路径中排除特定的 jar

protocol-buffers - Apache Thrift、Google Protocol Buffers、MessagePack、ASN.1 和 Apache Avro 之间的主要区别是什么?

hadoop - Protocol Buffer 错误 : Hbase createTable & put in java code(protobuf-LiteralByteString)