compilation error
joannalange opened this issue · 10 comments
I was trying to compile xssp but it fails with the following output:
make_error_xssp.txt
I'm on Ubuntu 16.04, g++-5, and I'm using the following library versions:
libzeep-dev 3.0.2-3
and all the libboost 1.58-dev libraries
Any ideas what might be the issue here, @cbaakman?
I see no errors in your text file. Did you also include stderr and not just stdout?
Which commands did you run?
You could try to use libzeep-3.0.3 from here: https://github.com/mhekkel/libzeep/releases
ah, yeah sorry that was indeed just stdout.
Here is the stderr output: log_file.txt
It reports the following error repeatedly:
usr/include/c++/5/bits/allocator.h:128:5: note: template argument deduction/substitution failed:
src/fetchdbrefs.cpp:101:26: note: ‘std::istream {aka std::basic_istream<char>}’ is not derived from ‘const std::allocator<_Tp1>’
if (response_stream == false or http_version.substr(0, 5) != "HTTP/")
^
In file included from /usr/include/c++/5/bits/stl_algobase.h:67:0,
from /usr/include/c++/5/bits/stl_tree.h:63,
from /usr/include/c++/5/map:60,
from src/fetchdbrefs.h:6,
from src/fetchdbrefs.cpp:1:
/usr/include/c++/5/bits/stl_iterator.h:1071:5: note: candidate: template<class _Iterator> bool std::operator==(const std::move_iterator<_Iterator>&, const std::move_iterator<_Iterator>&)
operator==(const move_iterator<_Iterator>& __x,
In the master branch however, if (response_stream == false
has been replaced by if (!response_stream
. So pulling from the master branch in the main fork should make this error go away.
Did that work?
I still have an issue with linking against boost libraries...
g++ -g -O2 -o mkhssp src/blast.o src/dssp.o src/fasta.o src/fetchdbrefs.o src/hssp-nt.o src/iocif.o src/mas.o src/matrix.o src/mkhssp.o src/primitives-3d.o src/progress.o src/structure.o src/utils.o -lboost_date_time -lboost_filesystem -lboost_iostreams -lboost_program_options -lboost_regex -lboost_system -lboost_thread -lpthread -lboost_timer -lzeep
src/blast.o: In function `boost::filesystem3::file_size(boost::filesystem3::path const&)':
/usr/local/include/boost/filesystem/v3/operations.hpp:447: undefined reference to `boost::filesystem3::detail::file_size(boost::filesystem3::path const&, boost::system::error_code*)'
src/blast.o: In function `boost::thread::thread<BlastQuery<2>::Search(std::vector<boost::filesystem3::path, std::allocator<boost::filesystem3::path> > const&, MProgress&, unsigned int)::{lambda()#1}&>(BlastQuery<2>::Search(std::vector<boost::filesystem3::path, std::allocator<boost::filesystem3::path> > const&, MProgress&, unsigned int)::{lambda()#1}&)':
/usr/local/include/boost/thread/detail/thread.hpp:171: undefined reference to `boost::thread::start_thread()'
src/blast.o: In function `boost::thread::thread<BlastQuery<2>::Search(std::vector<boost::filesystem3::path, std::allocator<boost::filesystem3::path> > const&, MProgress&, unsigned int)::{lambda()#2}&>(BlastQuery<2>::Search(std::vector<boost::filesystem3::path, std::allocator<boost::filesystem3::path> > const&, MProgress&, unsigned int)::{lambda()#2}&)':
/usr/local/include/boost/thread/detail/thread.hpp:171: undefined reference to `boost::thread::start_thread()'
src/blast.o: In function `boost::thread::thread<BlastQuery<3>::Search(std::vector<boost::filesystem3::path, std::allocator<boost::filesystem3::path> > const&, MProgress&, unsigned int)::{lambda()#1}&>(BlastQuery<3>::Search(std::vector<boost::filesystem3::path, std::allocator<boost::filesystem3::path> > const&, MProgress&, unsigned int)::{lambda()#1}&)':
/usr/local/include/boost/thread/detail/thread.hpp:171: undefined reference to `boost::thread::start_thread()'
src/blast.o: In function `boost::thread::thread<BlastQuery<3>::Search(std::vector<boost::filesystem3::path, std::allocator<boost::filesystem3::path> > const&, MProgress&, unsigned int)::{lambda()#2}&>(BlastQuery<3>::Search(std::vector<boost::filesystem3::path, std::allocator<boost::filesystem3::path> > const&, MProgress&, unsigned int)::{lambda()#2}&)':
/usr/local/include/boost/thread/detail/thread.hpp:171: undefined reference to `boost::thread::start_thread()'
src/blast.o: In function `boost::thread::thread<BlastQuery<4>::Search(std::vector<boost::filesystem3::path, std::allocator<boost::filesystem3::path> > const&, MProgress&, unsigned int)::{lambda()#1}&>(BlastQuery<4>::Search(std::vector<boost::filesystem3::path, std::allocator<boost::filesystem3::path> > const&, MProgress&, unsigned int)::{lambda()#1}&)':
/usr/local/include/boost/thread/detail/thread.hpp:171: undefined reference to `boost::thread::start_thread()'
src/blast.o:/usr/local/include/boost/thread/detail/thread.hpp:171: more undefined references to `boost::thread::start_thread()' follow
src/mkhssp.o: In function `boost::filesystem3::operator/(boost::filesystem3::path const&, boost::filesystem3::path const&)':
/usr/local/include/boost/filesystem/v3/path.hpp:620: undefined reference to `boost::filesystem3::path::operator/=(boost::filesystem3::path const&)'
src/mkhssp.o: In function `boost::filesystem3::exists(boost::filesystem3::path const&)':
/usr/local/include/boost/filesystem/v3/operations.hpp:289: undefined reference to `boost::filesystem3::detail::status(boost::filesystem3::path const&, boost::system::error_code*)'
/usr/local/include/boost/filesystem/v3/operations.hpp:289: undefined reference to `boost::filesystem3::detail::status(boost::filesystem3::path const&, boost::system::error_code*)'
/usr/local/include/boost/filesystem/v3/operations.hpp:289: undefined reference to `boost::filesystem3::detail::status(boost::filesystem3::path const&, boost::system::error_code*)'
src/mkhssp.o: In function `boost::filesystem3::remove(boost::filesystem3::path const&)':
/usr/local/include/boost/filesystem/v3/operations.hpp:496: undefined reference to `boost::filesystem3::detail::remove(boost::filesystem3::path const&, boost::system::error_code*)'
src/progress.o: In function `boost::thread::thread<boost::_bi::bind_t<void, boost::_mfi::mf0<void, MProgressImpl>, boost::_bi::list1<boost::_bi::value<MProgressImpl*> > > >(boost::_bi::bind_t<void, boost::_mfi::mf0<void, MProgressImpl>, boost::_bi::list1<boost::_bi::value<MProgressImpl*> > >&&)':
/usr/local/include/boost/thread/detail/thread.hpp:171: undefined reference to `boost::thread::start_thread()'
src/progress.o: In function `void boost::this_thread::sleep<boost::posix_time::seconds>(boost::posix_time::seconds const&)':
/usr/local/include/boost/thread/pthread/thread_data.hpp:149: undefined reference to `boost::this_thread::sleep(boost::posix_time::ptime const&)'
src/structure.o: In function `boost::thread::thread<boost::_bi::bind_t<void, boost::_mfi::mf2<void, MProtein, buffer<MResidue*, 100u>&, std::vector<MResidue*, std::allocator<MResidue*> > const&>, boost::_bi::list3<boost::_bi::value<MProtein*>, boost::reference_wrapper<buffer<MResidue*, 100u> >, boost::reference_wrapper<std::vector<MResidue*, std::allocator<MResidue*> > const> > >&>(boost::_bi::bind_t<void, boost::_mfi::mf2<void, MProtein, buffer<MResidue*, 100u>&, std::vector<MResidue*, std::allocator<MResidue*> > const&>, boost::_bi::list3<boost::_bi::value<MProtein*>, boost::reference_wrapper<buffer<MResidue*, 100u> >, boost::reference_wrapper<std::vector<MResidue*, std::allocator<MResidue*> > const> > >&)':
/usr/local/include/boost/thread/detail/thread.hpp:171: undefined reference to `boost::thread::start_thread()'
src/structure.o: In function `boost::thread::thread<boost::_bi::bind_t<void, boost::_mfi::mf1<void, MProtein, std::vector<MResidue*, std::allocator<MResidue*> > const&>, boost::_bi::list2<boost::_bi::value<MProtein*>, boost::reference_wrapper<std::vector<MResidue*, std::allocator<MResidue*> > > > > >(boost::_bi::bind_t<void, boost::_mfi::mf1<void, MProtein, std::vector<MResidue*, std::allocator<MResidue*> > const&>, boost::_bi::list2<boost::_bi::value<MProtein*>, boost::reference_wrapper<std::vector<MResidue*, std::allocator<MResidue*> > > > >&&)':
/usr/local/include/boost/thread/detail/thread.hpp:171: undefined reference to `boost::thread::start_thread()'
collect2: error: ld returned 1 exit status
Makefile:630: recipe for target 'mkhssp' failed
make[1]: *** [mkhssp] Error 1
make[1]: *** Waiting for unfinished jobs....
make[1]: Leaving directory '/home/jlange/software/xssp'
Makefile:494: recipe for target 'all' failed
make: *** [all] Error 2
Would you have any ideas what to do with that? I do have all the needed libraries installed
Did you install the package 'libboost-all-dev'? That one usually works.
Yep, it is installed and I still get the same error msg
Could you rerun the configure script? Maybe it still needs to locate your boost libraries.
Your version of boost is too new. Those symbols aren't included in 1.58. The dockerfile uses 1.54.0 from ubuntu 14.04.
You can either use the docker image (something like docker run -it xssp mkhssp <opts>
), install an older version of boost, or update xssp to work with the latest boost version.
@joannalange Did this fix it for you?