hap.py
hap.py copied to clipboard
collect2: error: ld returned 1 exit status
Hi, I made an attempt to install. CentOS 7.5, version master (git checkout) :
cmake ../hap.py \
-DCMAKE_C_COMPILER=/config/binaries/gcc/8.2/bin/gcc \
-DCMAKE_CXX_COMPILER=/config/binaries/gcc/8.2/bin/g++ \
-DCMAKE_BUILD_TYPE=Release \
-DBOOST_ROOT=/config/binaries/boost/1.68.0
But it failed at 50% with
[ 50%] Building CXX object src/c++/main/CMakeFiles/alleles.dir/alleles.cpp.o
In file included from /config/binaries/hap.py/buildenv/hap-build/include/boost/mpl/aux_/na_assert.hpp:23,
from /config/binaries/hap.py/buildenv/hap-build/include/boost/mpl/arg.hpp:25,
from /config/binaries/hap.py/buildenv/hap-build/include/boost/mpl/placeholders.hpp:24,
from /config/binaries/hap.py/buildenv/hap-build/include/boost/iterator/iterator_categories.hpp:17,
from /config/binaries/hap.py/buildenv/hap-build/include/boost/iterator/iterator_facade.hpp:14,
from /config/binaries/hap.py/buildenv/hap-build/include/boost/range/iterator_range_core.hpp:27,
from /config/binaries/hap.py/buildenv/hap-build/include/boost/lexical_cast.hpp:30,
from /config/binaries/hap.py/buildenv/hap-build/include/boost/program_options/value_semantic.hpp:14,
from /config/binaries/hap.py/buildenv/hap-build/include/boost/program_options/options_description.hpp:13,
from /config/binaries/hap.py/buildenv/hap-build/include/boost/program_options.hpp:15,
from /config/binaries/hap.py/buildenv/hap.py/src/c++/main/alleles.cpp:36:
/config/binaries/hap.py/buildenv/hap-build/include/boost/mpl/assert.hpp:188:21: warning: unnecessary parentheses in declaration of ‘assert_arg’ [-Wparentheses]
failed ************ (Pred::************
^
/config/binaries/hap.py/buildenv/hap-build/include/boost/mpl/assert.hpp:193:21: warning: unnecessary parentheses in declaration of ‘assert_not_arg’ [-Wparentheses]
failed ************ (boost::mpl::not_<Pred>::************
^
Linking CXX executable ../../../bin/alleles
CMakeFiles/alleles.dir/alleles.cpp.o: In function `boost::program_options::typed_value<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, char>::xparse(boost::any&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<cha
r> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&) const':
alleles.cpp:(.text._ZNK5boost15program_options11typed_valueINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEcE6xparseERNS_3anyERKSt6vectorIS7_SaIS7_EE[_ZNK5boost15program_options11typed_valueINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEcE6xparseERNS_3anyERKSt6vectorIS7_
SaIS7_EE]+0x21): undefined reference to `boost::program_options::validate(boost::any&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > con
st&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, int)'
CMakeFiles/alleles.dir/alleles.cpp.o: In function `boost::program_options::typed_value<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, char>::name() const':
alleles.cpp:(.text._ZNK5boost15program_options11typed_valueINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEcE4nameEv[_ZNK5boost15program_options11typed_valueINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEcE4nameEv]+0x1f): undefined reference to `boost::program_options::a
rg[abi:cxx11]'
CMakeFiles/alleles.dir/alleles.cpp.o: In function `boost::program_options::basic_command_line_parser<char>::basic_command_line_parser(int, char const* const*)':
alleles.cpp:(.text._ZN5boost15program_options25basic_command_line_parserIcEC2EiPKPKc[_ZN5boost15program_options25basic_command_line_parserIcEC5EiPKPKc]+0x1b8): undefined reference to `boost::program_options::to_internal(std::__cxx11::basic_string<char, std::char_traits<char>, std::
allocator<char> > const&)'
alleles.cpp:(.text._ZN5boost15program_options25basic_command_line_parserIcEC2EiPKPKc[_ZN5boost15program_options25basic_command_line_parserIcEC5EiPKPKc]+0x287): undefined reference to `boost::program_options::detail::cmdline::cmdline(std::vector<std::__cxx11::basic_string<char, std:
:char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&)'
CMakeFiles/alleles.dir/alleles.cpp.o: In function `main':
alleles.cpp:(.text.startup+0xa4): undefined reference to `boost::program_options::options_description::options_description(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int, unsigned int)'
alleles.cpp:(.text.startup+0x4c3): undefined reference to `boost::program_options::abstract_variables_map::operator[](std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
alleles.cpp:(.text.startup+0x560): undefined reference to `boost::program_options::abstract_variables_map::operator[](std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
alleles.cpp:(.text.startup+0x5ef): undefined reference to `boost::program_options::abstract_variables_map::operator[](std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
alleles.cpp:(.text.startup+0x6cf): undefined reference to `boost::program_options::abstract_variables_map::operator[](std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
CMakeFiles/alleles.dir/alleles.cpp.o:(.rodata._ZTVN5boost15program_options11typed_valueINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEcEE[_ZTVN5boost15program_options11typed_valueINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEcEE]+0x38): undefined reference to `boost::p
rogram_options::value_semantic_codecvt_helper<char>::parse(boost::any&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, bool) cons
t'
collect2: error: ld returned 1 exit status
make[2]: *** [bin/alleles] Error 1
make[1]: *** [src/c++/main/CMakeFiles/alleles.dir/all] Error 2
make: *** [all] Error 2
Does your boost installation come from the same compiler you're using for hap.py? Different versions of gcc can produce incompatible static libraries. One way to avoid this is to compile Boost from source with the same compiler you're using for hap.py later.
I think that's almost certainly the issue. Thanks. I'll recompile boost.