OSX 上的 Apache Ignite 2.0 C++ 无法编译
apache ignite 2.0 c++ on osx does not compile
我试图编译Apache Ignite 2.0 C++。我正在从目录/opt/apache-ignite-2.0.0-src/modules/platforms/cpp
运行 make。我已经编译了所有的Java代码,我可以很好地启动Apache Ignite。但是,C++不会编译。似乎我必须通过C++代码来解决问题。
我在运行时遇到的错误是:
/Applications/Xcode.app/Contents/Developer/usr/bin/make all-recursive
Making all in common
Making all in include
make[3]: Nothing to be done for `all'.
Making all in os/linux/include
make[3]: Nothing to be done for `all'.
make[3]: Nothing to be done for `all-am'.
Making all in binary
Making all in include
make[3]: Nothing to be done for `all'.
CXX src/binary/binary_containers.lo
In file included from src/binary/binary_containers.cpp:18:
In file included from ./include/ignite/binary/binary_containers.h:30:
In file included from ./include/ignite/impl/binary/binary_writer_impl.h:35:
In file included from ./include/ignite/impl/binary/binary_object_impl.h:31:
./include/ignite/impl/binary/binary_reader_impl.h:986:58: error: variable has incomplete type 'ignite::binary::BinaryReader'
ignite::binary::BinaryReader reader(&readerImpl);
^
./include/ignite/binary/binary_type.h:135:15: note: forward declaration of 'ignite::binary::BinaryReader'
class BinaryReader;
^
In file included from src/binary/binary_containers.cpp:18:
In file included from ./include/ignite/binary/binary_containers.h:30:
./include/ignite/impl/binary/binary_writer_impl.h:702:54: error: variable has incomplete type 'ignite::binary::BinaryWriter'
ignite::binary::BinaryWriter writer(&writerImpl);
^
./include/ignite/binary/binary_type.h:134:15: note: forward declaration of 'ignite::binary::BinaryWriter'
class BinaryWriter;
^
2 errors generated.
make[3]: *** [src/binary/binary_containers.lo] Error 1
make[2]: *** [all-recursive] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2
好吧,OS X不受官方支持。你可能想写信给Apache Ignite用户邮件列表,请别人帮助你。不过,请确保在发送问题之前订阅,以便每个人都会看到您的邮件。
这很可能是因为您使用 clang++ 来编译 ignite。
原因本身被解释在另一个SO问题中:Apache Ignite C++代码是错误的(它有一个错误(,但碰巧一些编译器没有检测到并报告问题。
一种解决方案(除了修改 ignite 源代码(是使用 g++。OSX的说明在不同的SO问题中。