我正在尝试为FreeBSD 8.1构buildsnappy-java,以便与cassandra一起使用(不能在没有它的情况下启用列压缩)。
试图从源代码构build它,并得到一个错误:
$ hg clone https://snappy-java.googlecode.com/hg/ snappy-java $ cd snappy-java $ export JAVA_HOME = / usr / local / openjdk6 && gmake
该过程开始,但一段时间后,我得到以下错误:
g ++ -I / usr / local / openjdk6 / include -Ilib / inc_mac -O2 -fPIC - fvisibility = hidden -Ilib / include -I“/ usr / local / openjdk6 / include / freebsd“-Itarget / snappy-1.0.4 -o target / snappy-1.0.4-Default / libsnappyjava.so target / snappy-1.0.4-Default / snappy-sinksource.o target / snappy-1.0.4-Default / snappy-stubs-internal.o target / snappy-1.0.4-Default / snappy.o target / snappy-1.0.4-Default / SnappyNative.o -shared -static / usr / bin / ld:/usr/lib/crtbeginT.o:重定位R_X86_64_32不能 在制作共享对象时使用; 用-fPIC重新编译 /usr/lib/crtbeginT.o:无法读取符号:值不好 gmake:*** [target / snappy-1.0.4-Default / libsnappyjava.so]错误1
所以-fPIC已经在…任何帮助表示赞赏。 谢谢
没有它,不能启用列压缩
这不完全正确。 如果没有Snappy库,DeflateCompressor仍然可用。 你需要还是喜欢Snappy? 如果是这样,我会将Snappy项目中的可下载.jar文件添加到您的类path中。 没有必要执行你自己的构build。
尝试从编译器标志中删除-static。 你正在build立一个共享库。