如何在 FreeBSD 8.1 下构建 snappy-java?(构建错误)

如何在 FreeBSD 8.1 下构建 snappy-java?(构建错误)

我正在尝试为 FreeBSD 8.1 构建 snappy-java,以便将其与 cassandra 一起使用(如果没有它就无法启用列压缩)。

尝试从源代码构建它并出现错误:

$ hg 克隆 https://snappy-java.googlecode.com/hg/ snappy-java
$ cd snappy-java
$ 导出 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 目标/snappy-1.0.4-默认/snappy-sinksource.o
目标/snappy-1.0.4-默认/snappy-stubs-internal.o 目标/
snappy-1.0.4-默认/snappy.o 目标/snappy-1.0.4-默认/
SnappyNative.o-共享-静态
/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 已开启... 任何帮助都值得感激。谢谢

答案1

如果没有它就无法启用列压缩

这不完全正确。DeflateCompressor 在没有 Snappy 库的情况下仍然可用。您是否需要或更喜欢 Snappy?如果是,我会添加可下载的 .jar从 Snappy 项目添加到您的类路径。无需执行您自己的构建。

答案2

尝试从编译器标志中删除 -static。您正在构建一个共享库。

相关内容