我试图在CentOS上从源代码构建MonetDB。 通常问题出现在制作步骤中, 我按如下方式运行配置
./ configure -prefix = $ HOME / MonetDB - disable-geom --disable-strict
这完全没问题。但是,使用" make"之后会导致错误:
...
make[3]: Entering directory `/users/db01/dm/MonetDB/MonetDB-11.19.9/gdk'
/bin/sh ../libtool --tag=CC --mode=link gcc -DLIBGDK -g -O2 -D_REENTRANT -version-info 11:4:0 -o libbat.la -rpath /users/db01/dm/MonetDB/MDB/lib libbat_la-gdk_batop.lo libbat_la-gdk_select.lo libbat_la-gdk_select_legacy.lo libbat_la-gdk_search.lo libbat_la-gdk_tm.lo libbat_la-gdk_align.lo libbat_la-gdk_bbp.lo libbat_la-gdk_heap.lo libbat_la-gdk_setop.lo libbat_la-gdk_utils.lo libbat_la-gdk_atoms.lo libbat_la-gdk_qsort.lo libbat_la-gdk_ssort.lo libbat_la-gdk_storage.lo libbat_la-gdk_bat.lo libbat_la-gdk_delta.lo libbat_la-gdk_cross.lo libbat_la-gdk_system.lo libbat_la-gdk_value.lo libbat_la-gdk_posix.lo libbat_la-gdk_logger.lo libbat_la-gdk_sample.lo libbat_la-gdk_calc.lo libbat_la-gdk_aggr.lo libbat_la-gdk_group.lo libbat_la-gdk_mapreduce.lo libbat_la-gdk_imprints.lo libbat_la-gdk_join.lo libbat_la-gdk_join_legacy.lo libbat_la-gdk_unique.lo libbat_la-gdk_firstn.lo ../common/options/libmoptions.la ../common/stream/libstream.la ../common/utils/libmutils.la -lm -lz -lbz2 -pthread -ldl
libtool: link: gcc -shared -fPIC -DPIC .libs/libbat_la-gdk_batop.o .libs/libbat_la-gdk_select.o .libs/libbat_la-gdk_select_legacy.o .libs/libbat_la-gdk_search.o .libs/libbat_la-gdk_tm.o .libs/libbat_la-gdk_align.o .libs/libbat_la-gdk_bbp.o .libs/libbat_la-gdk_heap.o .libs/libbat_la-gdk_setop.o .libs/libbat_la-gdk_utils.o .libs/libbat_la-gdk_atoms.o .libs/libbat_la-gdk_qsort.o .libs/libbat_la-gdk_ssort.o .libs/libbat_la-gdk_storage.o .libs/libbat_la-gdk_bat.o .libs/libbat_la-gdk_delta.o .libs/libbat_la-gdk_cross.o .libs/libbat_la-gdk_system.o .libs/libbat_la-gdk_value.o .libs/libbat_la-gdk_posix.o .libs/libbat_la-gdk_logger.o .libs/libbat_la-gdk_sample.o .libs/libbat_la-gdk_calc.o .libs/libbat_la-gdk_aggr.o .libs/libbat_la-gdk_group.o .libs/libbat_la-gdk_mapreduce.o .libs/libbat_la-gdk_imprints.o .libs/libbat_la-gdk_join.o .libs/libbat_la-gdk_join_legacy.o .libs/libbat_la-gdk_unique.o .libs/libbat_la-gdk_firstn.o -Wl,--whole-archive ../common/options/.libs/libmoptions.a ../common/utils/.libs/libmutils.a -Wl,--no-whole-archive -Wl,-rpath -Wl,/users/db01/dm/MonetDB/MonetDB-11.19.9/common/stream/.libs -Wl,-rpath -Wl,/users/db01/dm/MonetDB/MDB/lib ../common/stream/.libs/libstream.so -L/usr/kerberos/lib64 -lssl -lcrypto -lm -lz -lbz2 -ldl -O2 -pthread -pthread -Wl,-soname -Wl,libbat.so.11 -o .libs/libbat.so.11.0.4
/usr/bin/ld: .libs/libbat_la-gdk_utils.o: relocation R_X86_64_PC32 against `MT_global_exit' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: final link failed: Bad value
collect2: ld returned 1 exit status
make[3]: *** [libbat.la] Error 1
make[3]: Leaving directory `/users/db01/dm/MonetDB/MonetDB-11.19.9/gdk'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/users/db01/dm/MonetDB/MonetDB-11.19.9/gdk'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/users/db01/dm/MonetDB/MonetDB-11.19.9'
make: *** [all] Error 2
我发现了类似的错误,其中包含网络中的MT_global_exit:https://www.monetdb.org/pipermail/users-list/2014-June/007334.html
删除__attribute__((__visibility__("hidden")))
,尝试提及的建议
来自gdk / gdk_private.h
在制作过程中会导致几个不同的错误(在gdk_private.h中)。
如果您有任何建议,我很乐意听到他们的意见!
最好的问候