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 с ожидаемым именем????

0 ответов

Другие вопросы по тегам