[mlpack-svn] [MLPACK] #250: CMake links against wrong library on OS X
MLPACK Trac
trac at coffeetalk-1.cc.gatech.edu
Mon Sep 17 16:38:27 EDT 2012
#250: CMake links against wrong library on OS X
--------------------------+-------------------------------------------------
Reporter: rcurtin | Owner: rcurtin
Type: defect | Status: new
Priority: minor | Milestone: mlpack 1.0.4
Component: build system | Keywords: os x, linker, cmake
Blocking: | Blocked By:
--------------------------+-------------------------------------------------
It seems as if a libmlpack.X.Y.dylib exists in the linker path on OS X
(see #230's attachment:
http://trac.research.cc.gatech.edu/fastlab/attachment/ticket/230/emst_crash.out
), executables are improperly linked against that library instead of the
desired library (build/lib/libmlpack.X.Y.dylib).
This problem does not exist on Linux systems (tested on
samedi.cc.gt.atl.ga.us, a Fedora 17 box):
{{{
$ VERBOSE=1 make mlpack_test
...
Linking CXX executable ../../../bin/mlpack_test
cd /home/ryan/work/fastlab/trunk/build/src/mlpack/tests && /usr/bin/cmake
-E cmake_link_script CMakeFiles/mlpack_test.dir/link.txt --verbose=1
/usr/lib/ccache/c++ -Wall -Wextra -g -O0 -pg -pg
CMakeFiles/mlpack_test.dir/mlpack_test.cpp.o
CMakeFiles/mlpack_test.dir/allkfn_test.cpp.o
CMakeFiles/mlpack_test.dir/allknn_test.cpp.o
CMakeFiles/mlpack_test.dir/arma_extend_test.cpp.o
CMakeFiles/mlpack_test.dir/aug_lagrangian_test.cpp.o
CMakeFiles/mlpack_test.dir/cli_test.cpp.o
CMakeFiles/mlpack_test.dir/distribution_test.cpp.o
CMakeFiles/mlpack_test.dir/emst_test.cpp.o
CMakeFiles/mlpack_test.dir/gmm_test.cpp.o
CMakeFiles/mlpack_test.dir/hmm_test.cpp.o
CMakeFiles/mlpack_test.dir/kernel_test.cpp.o
CMakeFiles/mlpack_test.dir/kernel_pca_test.cpp.o
CMakeFiles/mlpack_test.dir/kmeans_test.cpp.o
CMakeFiles/mlpack_test.dir/lars_test.cpp.o
CMakeFiles/mlpack_test.dir/lin_alg_test.cpp.o
CMakeFiles/mlpack_test.dir/linear_regression_test.cpp.o
CMakeFiles/mlpack_test.dir/load_save_test.cpp.o
CMakeFiles/mlpack_test.dir/local_coordinate_coding_test.cpp.o
CMakeFiles/mlpack_test.dir/lrsdp_test.cpp.o
CMakeFiles/mlpack_test.dir/math_test.cpp.o
CMakeFiles/mlpack_test.dir/max_ip_test.cpp.o
CMakeFiles/mlpack_test.dir/nbc_test.cpp.o
CMakeFiles/mlpack_test.dir/nca_test.cpp.o
CMakeFiles/mlpack_test.dir/nmf_test.cpp.o
CMakeFiles/mlpack_test.dir/pca_test.cpp.o
CMakeFiles/mlpack_test.dir/radical_test.cpp.o
CMakeFiles/mlpack_test.dir/range_search_test.cpp.o
CMakeFiles/mlpack_test.dir/save_restore_utility_test.cpp.o
CMakeFiles/mlpack_test.dir/sort_policy_test.cpp.o
CMakeFiles/mlpack_test.dir/sparse_coding_test.cpp.o
CMakeFiles/mlpack_test.dir/tree_test.cpp.o
CMakeFiles/mlpack_test.dir/union_find_test.cpp.o
CMakeFiles/mlpack_test.dir/det_test.cpp.o -o ../../../bin/mlpack_test
-rdynamic ../../../lib/libmlpack.so.1.0 -larmadillo
-lboost_program_options-mt -lboost_unit_test_framework-mt -lboost_random-
mt -lboost_program_options-mt -lboost_unit_test_framework-mt
-lboost_random-mt -lxml2
-Wl,-rpath,/home/ryan/work/fastlab/trunk/build/lib
...
}}}
then
{{{
$ ldd bin/mlpack_test
linux-gate.so.1 => (0xb772d000)
libmlpack.so.1 =>
/home/ryan/work/fastlab/trunk/build/lib/libmlpack.so.1 (0xb75d7000)
libarmadillo.so.3 => /lib/libarmadillo.so.3 (0x49f6e000)
libboost_program_options-mt.so.1.48.0 => /lib
/libboost_program_options-mt.so.1.48.0 (0xb756c000)
libboost_unit_test_framework-mt.so.1.48.0 => /lib
/libboost_unit_test_framework-mt.so.1.48.0 (0xb74bb000)
libboost_random-mt.so.1.48.0 => /lib/libboost_random-mt.so.1.48.0
(0xb74b6000)
libxml2.so.2 => /lib/libxml2.so.2 (0x440ff000)
libstdc++.so.6 => /lib/libstdc++.so.6 (0x44b41000)
libm.so.6 => /lib/libm.so.6 (0x43a83000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x43df1000)
libc.so.6 => /lib/libc.so.6 (0x438a5000)
libpthread.so.0 => /lib/libpthread.so.0 (0x43a55000)
libblas.so.3 => /lib/libblas.so.3 (0x49d7e000)
liblapack.so.3 => /usr/lib/atlas/liblapack.so.3 (0x4a023000)
libcblas.so.3 => /usr/lib/atlas/libcblas.so.3 (0x43d58000)
libclapack.so.3 => /usr/lib/atlas/libclapack.so.3 (0x49f53000)
librt.so.1 => /lib/librt.so.1 (0x43a78000)
libdl.so.2 => /lib/libdl.so.2 (0x43a71000)
libz.so.1 => /lib/libz.so.1 (0x43ab0000)
/lib/ld-linux.so.2 (0x43882000)
libgfortran.so.3 => /lib/libgfortran.so.3 (0x49ddd000)
libf77blas.so.3 => /usr/lib/atlas/libf77blas.so.3 (0x49ed9000)
libatlas.so.3 => /usr/lib/atlas/libatlas.so.3 (0x446b4000)
libquadmath.so.0 => /lib/libquadmath.so.0 (0x44577000)
}}}
Bill, can you run those two commands and paste the output on your setup,
when libmlpack.X.Y.dylib is placed (incorrectly) in
/Users/march/local/lib/?
{{{
$ VERBOSE=1 make mlpack_test
$ ldd bin/mlpack_test
}}}
Then maybe it will become clearer what the issue is. Or, if you don't
have time, when I finally get that OS X VM running I will look into it...
--
Ticket URL: <http://trac.research.cc.gatech.edu/fastlab/ticket/250>
MLPACK <www.fast-lab.org>
MLPACK is an intuitive, fast, and scalable C++ machine learning library developed by the FASTLAB at Georgia Tech under Dr. Alex Gray.
More information about the mlpack-svn
mailing list