[mlpack-git] [mlpack] Problem Linking MLPACK on Mac (#441)

ttuethao notifications at github.com
Sat Jun 13 08:29:51 EDT 2015


I have a similar problem. I built the mlpack.dylib successfully. The test however failed for 4 cases but I ignored. I tried to compile the sample program (http://www.mlpack.org/doxygen.php?doc=sample.html), but it failed at linking state, despite my effort in trying include every path I could think of. Here is the command 

<code>
g++-mp-4.9 lab.cpp -o lab.x -std=c++11 -O3 -I /opt/local/include -I /opt/local/include/eigen3 -I /opt/local/include/armadillo_bits -I /opt/local/include/libxml2 -I /usr/local/include  -L ./ -L /opt/local/lib -L /usr/lib -L /usr/local/lib -lmlpack -larmadillo -lxml2 -lblas -llapack
</code>

It failed with the note (sorry, I do not know how to paste the error in the correct format)

<code>
Undefined symbols for architecture x86_64:
  "mlpack::util::PrefixedOutStream::operator<<(std::basic_ostream<char, std::char_traits<char> >& (*)(std::basic_ostream<char, std::char_traits<char> >&))", referenced from:
      bool mlpack::data::Save<double>(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, arma::Mat<double> const&, bool, bool) in cc0ZLSpa.o
      bool mlpack::data::Load<double>(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, arma::Mat<double>&, bool, bool) in cc0ZLSpa.o
  "mlpack::util::PrefixedOutStream::operator<<(std::basic_string<char, std::char_traits<char>, std::allocator<char> >&)", referenced from:
      bool mlpack::data::Save<double>(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, arma::Mat<double> const&, bool, bool) in cc0ZLSpa.o
      bool mlpack::data::Load<double>(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, arma::Mat<double>&, bool, bool) in cc0ZLSpa.o
  "mlpack::Timer::Stop(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)", referenced from:
      bool mlpack::data::Save<double>(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, arma::Mat<double> const&, bool, bool) in cc0ZLSpa.o
      bool mlpack::data::Load<double>(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, arma::Mat<double>&, bool, bool) in cc0ZLSpa.o
  "mlpack::Timer::Start(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)", referenced from:
      bool mlpack::data::Save<double>(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, arma::Mat<double> const&, bool, bool) in cc0ZLSpa.o
      bool mlpack::data::Load<double>(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, arma::Mat<double>&, bool, bool) in cc0ZLSpa.o
  "std::ctype<char>::_M_widen_init() const", referenced from:
      bool arma::diskio::load_raw_ascii<double>(arma::Mat<double>&, std::basic_istream<char, std::char_traits<char> >&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >&) in cc0ZLSpa.o
      bool arma::diskio::load_csv_ascii<double>(arma::Mat<double>&, std::basic_istream<char, std::char_traits<char> >&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >&) in cc0ZLSpa.o
      void mlpack::util::PrefixedOutStream::BaseLogic<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) in cc0ZLSpa.o
      void mlpack::util::PrefixedOutStream::BaseLogic<unsigned long long>(unsigned long long const&) in cc0ZLSpa.o
  "std::__throw_out_of_range_fmt(char const*, ...)", referenced from:
      void mlpack::util::PrefixedOutStream::BaseLogic<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) in cc0ZLSpa.o
      bool mlpack::data::Save<double>(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, arma::Mat<double> const&, bool, bool) in cc0ZLSpa.o
      void mlpack::util::PrefixedOutStream::BaseLogic<unsigned long long>(unsigned long long const&) in cc0ZLSpa.o
      bool mlpack::data::Load<double>(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, arma::Mat<double>&, bool, bool) in cc0ZLSpa.o
ld: symbol(s) not found for architecture x86_64
collect2: error: ld returned 1 exit status
</code>
I'm sure the library is in /usr/local/lib
<code>
$ ls /usr/local/lib/libmlpack.
libmlpack.1.0.dylib  libmlpack.1.dylib    libmlpack.dylib
</code>
I am very grateful if you can see a problem in my stuff... Thanks a lot.

---
Reply to this email directly or view it on GitHub:
https://github.com/mlpack/mlpack/issues/441#issuecomment-111706396
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.cc.gatech.edu/pipermail/mlpack-git/attachments/20150613/bd0473ac/attachment.html>


More information about the mlpack-git mailing list