-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Boost problem, Ubuntu 14.04 #2
Comments
Interesting. Looks like a problem with the Boost program options. I will On Fri, Feb 26, 2016 at 2:56 PM, rwhetten [email protected] wrote:
Bill C. White, MS |
Have you tried 'make clean && make'? I don't have any problems, but make On Fri, Mar 11, 2016 at 8:22 AM, Bill White [email protected] wrote:
Bill C. White, MS |
Hi Bill, Regards, Ross Whetten, Professor On Fri, Mar 11, 2016 at 11:27 AM, Bill White [email protected]
|
I think I have an idea what you need. Most of Boost is a header library requiring the specification of where the include '.hpp' files are with the '-I/path' option. It is ok in your case. Boost "program options" is a special library, and we need to make sure the linker option '-L/path' points to where the library is located. If it is in '/usr/lib' the compiler should find it; it is a default location. Else, we need to tell the compiler where it is installed. I used 'locate" to find mine: bwhite@newton:~$ locate program_options As I recall, it's been a while since I have done C++ every day, I think you can do this: $ export LDFLAGS="$LDFLAGS -L/your/path/to/program/options/library_name.so" My guess is that the upgrade from Ubuntu 12 to 14 installed the latest Boost in a different location than the previous version. C++ is a pain to get working, but it usually worth in terms of performance. |
I compiled Reliefseq last summer and had it running on a Ubuntu 12.04 system, then did not use it for a while. In the meantime, the system was upgraded to Ubuntu 14.04. When I tried Reliefseq again, it complained "error while loading shared libraries: libboost_program_options.so.1.46.1"
The upgraded system has Boost 1.47, but I thought perhaps not all Boost libraries had been upgraded, so I ran apt-get install libboost-all-dev to make sure all libraries were updated (several packages were installed, so that seemed to have been worthwhile). After that I removed the previously-compiled version of Reliefseq, cloned the Github repo, and set BOOST_ROOT to /usr/local/include/boost, then ran bootstrap.sh and configure, both of which seemed to complete without problems. When I run make, however, things go wrong after a while. What seems to me to be the last command executed is pasted below, followed by a series of error messages about boost_program_options. The output from ./configure indicated that the BOOST_PROGRAM_OPTIONS variables were set without issues, so I'm not sure how to proceed.
"/bin/bash ./libtool --tag=CXX --mode=link g++ -I. -I/usr/local/include/boost/include -fopenmp -O3 -Wall -I/usr/local/include -g -O2 -fopenmp -L/usr/local/lib -L/usr/local/Cellar/gcc/4.9.2_1/lib/gcc/4.9 -lgomp -o reliefseq ReliefSeqCLI.o Insilico.o DistanceMetrics.o Statistics.o Dataset.o ArffDataset.o PlinkDataset.o PlinkBinaryDataset.o PlinkRawDataset.o DgeData.o BirdseedData.o DatasetInstance.o AttributeRanker.o ChiSquared.o ReliefF.o RReliefF.o SNReliefF.o ReliefFSeq.o ReliefSeqController.o -L/usr/local/lib -L/usr/local/Cellar/gcc/4.9.2_1/lib/gcc/4.9 -lgomp -lgsl -lgslcblas -lboost_program_options -L. -lgomp
libtool: link: g++ -I. -I/usr/local/include/boost/include -fopenmp -O3 -Wall -I/usr/local/include -g -O2 -fopenmp -o reliefseq ReliefSeqCLI.o Insilico.o DistanceMetrics.o Statistics.o Dataset.o ArffDataset.o PlinkDataset.o PlinkBinaryDataset.o PlinkRawDataset.o DgeData.o BirdseedData.o DatasetInstance.o AttributeRanker.o ChiSquared.o ReliefF.o RReliefF.o SNReliefF.o ReliefFSeq.o ReliefSeqController.o -L/usr/local/lib -L/usr/local/Cellar/gcc/4.9.2_1/lib/gcc/4.9 -lgsl -lgslcblas -lboost_program_options -L. -lgomp -fopenmp
ReliefSeqCLI.o: In function
std::basic_string<char, std::char_traits<char>, std::allocator<char> > const& boost::program_options::validators::get_single_string<char>(std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, bool)': /usr/local/include/boost/include/boost/program_options/detail/value_semantic.hpp:58: undefined reference to
boost::program_options::validation_error::validation_error(boost::program_options::validation_error::kind_t, std::string const&, std::string const&)'/usr/local/include/boost/include/boost/program_options/detail/value_semantic.hpp:62: undefined reference to
boost::program_options::validation_error::validation_error(boost::program_options::validation_error::kind_t, std::string const&, std::string const&)' ReliefSeqCLI.o:(.rodata._ZTVN5boost16exception_detail19error_info_injectorINS_15program_options20invalid_option_valueEEE[_ZTVN5boost16exception_detail19error_info_injectorINS_15program_options20invalid_option_valueEEE]+0x20): undefined reference to
boost::program_options::validation_error::what() const'ReliefSeqCLI.o:(.rodata._ZTVN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_15program_options20invalid_option_valueEEEEE[_ZTVN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_15program_options20invalid_option_valueEEEEE]+0x20): undefined reference to
boost::program_options::validation_error::what() const' ReliefSeqCLI.o:(.rodata._ZTVN5boost16exception_detail19error_info_injectorINS_15program_options16validation_errorEEE[_ZTVN5boost16exception_detail19error_info_injectorINS_15program_options16validation_errorEEE]+0x20): undefined reference to
boost::program_options::validation_error::what() const'ReliefSeqCLI.o:(.rodata._ZTVN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_15program_options16validation_errorEEEEE[_ZTVN5boost16exception_detail10clone_implINS0_19error_info_injectorINS_15program_options16validation_errorEEEEE]+0x20): undefined reference to
boost::program_options::validation_error::what() const' ReliefSeqCLI.o:(.rodata._ZTVN5boost15program_options20invalid_option_valueE[_ZTVN5boost15program_options20invalid_option_valueE]+0x20): undefined reference to
boost::program_options::validation_error::what() const'collect2: error: ld returned 1 exit status
make[1]: *** [reliefseq] Error 1
make[1]: Leaving directory `/home/ross/software/reliefseq'
make: *** [all] Error 2"
The text was updated successfully, but these errors were encountered: