Compiling issue
Hello. I have been asked to install Metbat on our HPC for use by one of our Cores here. This is a CentOS 6.5 based linux system:
Kernel: 2.6.32-431.17.1.el6.x86_64 Boost: 1.65.1 Python: 2.7.12 SCONS: 3.0.4 Samtools: 1.7 GCC: 5.4.0 Zlib: 1.2.8
And i try to execute the following:
scons install PREFIX=/cm/shared/apps/metabat/2.12.1 BOOST_ROOT=/cm/shared/apps/boost/1.65.1
it seems to build samtools ok but then exists the compilation with the following error:
g++ -o src/jgi_summarize_bam_contig_depths.o -c -Wall -g -std=c++11 -fopenmp -O3 -DNDEBUG -Wno-unknown-pragmas -Wno-deprecated-declarations -Wno-overflow -Wno-unused-variable -Isamtools-inst/include -Isamtools-inst/include -I/include -I/cm/shared/apps/boost/1.65.1/include src/jgi_summarize_bam_contig_depths.cpp
g++ -o jgi_summarize_bam_contig_depths -lstdc++ -lm -fopenmp -static -static-libgcc -static-libstdc++ src/jgi_summarize_bam_contig_depths.o samtools-inst/lib/libbam.a samtools-inst/lib/libhts.a -lpthread -lz
/cm/shared/apps/gcc/5.4.0/lib/gcc/x86_64-unknown-linux-gnu/5.4.0/../../../../lib64/libgomp.a(target.o): In function gomp_load_plugin_for_device':
/root/temp/gcc/x86_64-unknown-linux-gnu/libgomp/../../../gcc-5.4.0/libgomp/target.c:1109: warning: Using 'dlopen' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
samtools-inst/lib/libhts.a(knetfile.o): In function
socket_connect':
/root/temp/berkeleylab-metabat-3099fac059e6/samtools-1.7/htslib-1.7/knetfile.c:102: warning: Using 'getaddrinfo' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/usr/lib/../lib64/libpthread.a(libpthread.o): In function sem_open':
(.text+0x77cd): warning: the use of
mktemp' is dangerous, better use mkstemp'
samtools-inst/lib/libhts.a(hfile_libcurl.o): In function
easy_errno':
hfile_libcurl.c:(.text+0xcd): undefined reference to curl_easy_getinfo'
hfile_libcurl.c:(.text+0x10d): undefined reference to
curl_easy_getinfo'
samtools-inst/lib/libhts.a(hfile_libcurl.o): In function wait_perform':
hfile_libcurl.c:(.text+0xaa5): undefined reference to
curl_multi_fdset'
hfile_libcurl.c:(.text+0xaff): undefined reference to curl_multi_perform'
hfile_libcurl.c:(.text+0xb52): undefined reference to
curl_multi_info_read'
hfile_libcurl.c:(.text+0xb7a): undefined reference to curl_multi_timeout'
samtools-inst/lib/libhts.a(hfile_libcurl.o): In function
libcurl_close':
hfile_libcurl.c:(.text+0xe93): undefined reference to curl_easy_pause'
hfile_libcurl.c:(.text+0xee7): undefined reference to
curl_multi_remove_handle'
hfile_libcurl.c:(.text+0xf0a): undefined reference to curl_easy_cleanup'
hfile_libcurl.c:(.text+0xf13): undefined reference to
curl_multi_cleanup'
hfile_libcurl.c:(.text+0xf69): undefined reference to curl_multi_remove_handle'
samtools-inst/lib/libhts.a(hfile_libcurl.o): In function
libcurl_write':
hfile_libcurl.c:(.text+0x108d): undefined reference to curl_easy_pause'
samtools-inst/lib/libhts.a(hfile_libcurl.o): In function
libcurl_exit':
hfile_libcurl.c:(.text+0x113e): undefined reference to curl_share_cleanup'
samtools-inst/lib/libhts.a(hfile_libcurl.o): In function
libcurl_open':
hfile_libcurl.c:(.text+0x1d33): undefined reference to curl_multi_init'
hfile_libcurl.c:(.text+0x1d45): undefined reference to
curl_easy_init'
hfile_libcurl.c:(.text+0x1d64): undefined reference to curl_easy_setopt'
hfile_libcurl.c:(.text+0x1d7b): undefined reference to
curl_easy_setopt'
hfile_libcurl.c:(.text+0x1d9d): undefined reference to curl_easy_setopt'
hfile_libcurl.c:(.text+0x1db3): undefined reference to
curl_easy_setopt'
hfile_libcurl.c:(.text+0x1dcd): undefined reference to curl_easy_setopt'
samtools-inst/lib/libhts.a(hfile_libcurl.o):hfile_libcurl.c:(.text+0x1e06): more undefined references to
curl_easy_setopt' follow
samtools-inst/lib/libhts.a(hfile_libcurl.o): In function libcurl_open':
hfile_libcurl.c:(.text+0x2219): undefined reference to
curl_multi_add_handle'
hfile_libcurl.c:(.text+0x2322): undefined reference to curl_easy_cleanup'
hfile_libcurl.c:(.text+0x2330): undefined reference to
curl_multi_cleanup'
hfile_libcurl.c:(.text+0x237b): undefined reference to curl_multi_remove_handle'
hfile_libcurl.c:(.text+0x239d): undefined reference to
curl_easy_setopt'
hfile_libcurl.c:(.text+0x23b3): undefined reference to curl_easy_setopt'
hfile_libcurl.c:(.text+0x23e1): undefined reference to
curl_easy_setopt'
hfile_libcurl.c:(.text+0x24a6): undefined reference to curl_easy_getinfo'
samtools-inst/lib/libhts.a(hfile_libcurl.o): In function
restart_from_position':
hfile_libcurl.c:(.text+0x294d): undefined reference to curl_easy_setopt'
hfile_libcurl.c:(.text+0x2983): undefined reference to
curl_easy_duphandle'
hfile_libcurl.c:(.text+0x29a3): undefined reference to curl_easy_setopt'
hfile_libcurl.c:(.text+0x29ba): undefined reference to
curl_easy_setopt'
hfile_libcurl.c:(.text+0x29d1): undefined reference to curl_easy_setopt'
hfile_libcurl.c:(.text+0x29ee): undefined reference to
curl_easy_cleanup'
hfile_libcurl.c:(.text+0x2a30): undefined reference to curl_multi_add_handle'
hfile_libcurl.c:(.text+0x2a62): undefined reference to
curl_easy_cleanup'
hfile_libcurl.c:(.text+0x2acb): undefined reference to curl_easy_cleanup'
hfile_libcurl.c:(.text+0x2af5): undefined reference to
curl_easy_pause'
hfile_libcurl.c:(.text+0x2b3a): undefined reference to curl_multi_remove_handle'
hfile_libcurl.c:(.text+0x2b4e): undefined reference to
curl_easy_reset'
hfile_libcurl.c:(.text+0x2b5c): undefined reference to curl_multi_remove_handle'
hfile_libcurl.c:(.text+0x2bd5): undefined reference to
curl_easy_reset'
hfile_libcurl.c:(.text+0x2be3): undefined reference to curl_multi_remove_handle'
hfile_libcurl.c:(.text+0x2c19): undefined reference to
curl_easy_cleanup'
hfile_libcurl.c:(.text+0x2c31): undefined reference to curl_easy_setopt'
hfile_libcurl.c:(.text+0x2c46): undefined reference to
curl_easy_setopt'
hfile_libcurl.c:(.text+0x2cd5): undefined reference to curl_easy_cleanup'
hfile_libcurl.c:(.text+0x2d43): undefined reference to
curl_easy_reset'
samtools-inst/lib/libhts.a(hfile_libcurl.o): In function libcurl_read':
hfile_libcurl.c:(.text+0x2f42): undefined reference to
curl_easy_pause'
samtools-inst/lib/libhts.a(hfile_libcurl.o): In function hfile_plugin_init_libcurl':
hfile_libcurl.c:(.text+0x307b): undefined reference to
curl_global_init'
hfile_libcurl.c:(.text+0x3088): undefined reference to curl_share_init'
hfile_libcurl.c:(.text+0x30ac): undefined reference to
curl_share_setopt'
hfile_libcurl.c:(.text+0x30c6): undefined reference to curl_share_setopt'
hfile_libcurl.c:(.text+0x30e0): undefined reference to
curl_share_setopt'
hfile_libcurl.c:(.text+0x315e): undefined reference to curl_version_info'
hfile_libcurl.c:(.text+0x31dc): undefined reference to
curl_share_cleanup'
hfile_libcurl.c:(.text+0x31e1): undefined reference to curl_global_cleanup'
hfile_libcurl.c:(.text+0x322f): undefined reference to
curl_share_cleanup'
hfile_libcurl.c:(.text+0x3234): undefined reference to curl_global_cleanup'
samtools-inst/lib/libhts.a(hfile_libcurl.o): In function
libcurl_exit':
hfile_libcurl.c:(.text+0x124d): undefined reference to curl_global_cleanup'
samtools-inst/lib/libhts.a(hfile_s3.o): In function
auth_header_callback':
hfile_s3.c:(.text+0x8e7): undefined reference to EVP_sha1'
hfile_s3.c:(.text+0x90d): undefined reference to
HMAC'
collect2: error: ld returned 1 exit status
scons: *** [jgi_summarize_bam_contig_depths] Error 1
scons: building terminated because of errors.
What else can i provide to help debug this compiling issue?
Comments (4)
-
reporter -
The error you have shows a lot of linking errors, mostly around libcurl which are required from the htslib and/or samtools libraries that are built. These are tricky to fix and highly system dependent. I suspect that some dependencies have not been met in your system. You can use the docker build or look to the Dockerfile for the explicit list of packages that are required (at least for Ubuntu 16.04)
In the next major release I intend to replace the scons build with something more reliable.
-
The build system has changed and curl is now not part of the dependencies of libhts. Please open a new ticket if the build via cmake fails for you now.
-
- changed status to resolved
- Log in to comment
I found a pre-compiled version among your releases, so that should fix me temporarily but i would really like to be able to build this by hand.