I am trying to install MLPack on windows 8. I am configuring the CMakeLists.txt file with:
set(ARMADILLO_LIBRARY "C:\\Program Files (x86)\\armadillo\\lib") set(ARMADILLO_INCLUDE_DIR "C:\\Program Files (x86)\\armadillo\\include")
Then, when I started CMake, I had a whole series of warnings like these:
WARNING: Target "mlpack" requests linking to directory "C:\Program Files (x86)\armadillo\lib". Targets may link only to libraries. CMake is dropping the item.
In the \ mlpack-1.0.4 \ src \ mlpack directory, I found another CMakeLists file with:
target_link_libraries(mlpack ${ARMADILLO_LIBRARIES} ${Boost_LIBRARIES} ${LIBXML2_LIBRARIES} )
what I changed (not sure if it was a good idea):
target_link_libraries(mlpack ${Boost_LIBRARIES} ) link_directories(mlpack ${ARMADILLO_LIBRARIES} ${LIBXML2_LIBRARIES} )
then CMake works fine:
-- Found Armadillo: C:\Program Files (x86)\armadillo\lib (found suitable version "3.800.2", minimum required is "2.4.2") -- Found LibXml2: C:\cpp\libraries\libxml2-2.7.8.win32\lib (found suitable version "2.7.8", minimum required is "2.6.0") -- Boost version: 1.53.0 -- Found the following Boost libraries: -- program_options -- unit_test_framework -- Boost version: 1.53.0 -- Found the following Boost libraries: -- random -- Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE) -- Configuring done -- Generating done -- Build files have been written to: C:/cpp/libraries/mlpack-1.0.4
but now at startup I have many such errors:
Linking CXX executable ..\..\..\..\gmm.exe CMakeFiles\gmm.dir/objects.a(gmm_main.cpp.obj):gmm_main.cpp:(.text+0xb9): undefined reference to `wrapper_dgemv_' CMakeFiles\gmm.dir/objects.a(gmm_main.cpp.obj):gmm_main.cpp:(.text$_ZN4arma6auxlib10det_lapackIdEET_RKNS_3MatIS2_EEb[__ZN4arma6auxlib10det_lapackIdEET_RKNS_3MatIS2_EEb]+0x115): undefined reference to `wrapper_dgetrf_'
which, after research, seems to be related to Armadillo.
Any idea what is going on? I assume I should use target_link_libraries for Armadillo, but I'm not sure how to do this.