Cmake не находит boost 1.51 (windows 8)
Я пытаюсь скомпилировать mlpack ( http://www.mlpack.org/), который требует повышения. Сначала я установил boostpro 1.51 ( http://www.boostpro.com/download/), а boost теперь установлен в C:\Program Files\boost\boost_1_51
Затем я скомпилировал и установил броненосец (еще одна зависимость от mlpack), используя cmake и mingw32-make. Повышение также является зависимостью от броненосца. Следуя некоторым советам ( Cmake не находит Boost), я добавил в файл CMakeLists:
SET(CMAKE_INCLUDE_PATH ${CMAKE_INCLUDE_PATH} "C:\\Program Files\\boost\\boost_1_51")
SET(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH} "C:\\Program Files\\boost\\boost_1_51\\lib")
Все прошло гладко.
Сейчас я пытаюсь запустить CMake на mlpack, но получаю эту ошибку:
CMake Ошибка в C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/FindBoos t.cmake:1192 (сообщение): невозможно найти запрошенные библиотеки Boost.
Boost версия: 1.51.0
Boost включает путь: C:/Program Files/boost/boost_1_51
Не удалось найти следующие библиотеки Boost:
boost_program_options boost_unit_test_framework
Библиотеки Boost не найдены. Вам может потребоваться установить BOOST_LIBRARYDIR в каталог, содержащий библиотеки Boost, или BOOST_ROOT в местоположение Boost. Стек вызовов (самый последний вызов сначала): CMakeLists.txt:192 (find_package)
Я пытался добавить (как для броненосца), но без улучшения:
SET(CMAKE_INCLUDE_PATH ${CMAKE_INCLUDE_PATH} "C:\\Program Files\\boost\\boost_1_51")
SET(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH} "C:\\Program Files\\boost\\boost_1_51\\lib")
Затем я попытался добавить также:
set(BOOST_ROOT "C:\\Program Files\\boost\\boost_1_51")
set(BOOST_INCLUDEDIR "C:\\Program Files\\boost\\boost_1_51")
set(BOOST_LIBRARYDIR "C:\\Program Files\\boost\\boost_1_51\\lib")
Что касается BOOST_INCLUDEDIR, я действительно не знаю, на какую папку я должен указать. boost_1_51 содержит: bin, boost, dist, doc, lib, libs, больше
Я также попробовал это ( cmake использует неправильные библиотеки cboost), но безуспешно.
Я также немного растерялся, так как броненосец, казалось, скомпилирован без проблем (или я что-то пропустил?)
Большое спасибо
Примечание: содержимое файла cmakelists:
#Unfortunately this configuration variable is necessary and will need to be
#updated as time goes on and new versions are released.
set(Boost_ADDITIONAL_VERSIONS "1.41" "1.41.0" "1.42" "1.42.0" "1.43" "1.43.0" "1.44" "1.44.0" "1.45.0" "1.46.0" "1.46.1" "1.47.0" "1.48.0" "1.49.0" "1.51.0")
find_package(Boost
COMPONENTS
program_options
unit_test_framework
REQUIRED
)
include_directories(${Boost_INCLUDE_DIRS})
Я добавил 1.51.0 сам.
из того, что я понял из другого поста ( CMake не находит Boost), это может быть связано с тем, что не удается найти библиотеки с правильными именами. В моей папке lib у меня есть (dll и lib файлы):
boost_program_options-vc80-mt-1_51.dll
boost_program_options-vc80-mt-gd-1_51.dll
boost_program_options-vc100-mt-1_51.dll
boost_program_options-vc100-mt-gd-1_51.dll
как-то я должен играть с такими командами, как
set(Boost_USE_MULTITHREADED ON)
так что будет искать lib с ожидаемым именем????