Я пытаюсь использовать сценарий CMake для компиляции приложения на основе Boost в Windows.
Библиотеки только для заголовков работают нормально, но CMake не может найти библиотеки (не удалось найти следующие библиотеки Boost: boost_serialization
). Соответствующая часть сценария CMake:
# Path where CMake can find additional libraries
SET(CMAKE_PREFIX_PATH Libs)
# Boost
SET(Boost_ADDITIONAL_VERSIONS "1.47" "1.47.0")
SET(Boost_USE_STATIC_LIBS ON)
find_package(Boost REQUIRED COMPONENTS serialization)
У меня внутри проекта есть папка "Libs", в которой хранятся сторонние библиотеки, такие как DevIL и Boost, поэтому я установил это в первую очередь. Он отлично работает для Devil и Boost только для заголовков, поэтому я полагаю, что мне не нужна переменная BOOST_ROOT.
Установка Boost - это стандартный дистрибутив с сайта boost.org, который я скомпилировал с помощью BJam. Библиотеки хранятся в boost_1_47_0\bin.v2\libs
, и я ничего не изменил в процессе сборки.
Я думаю, что это немного странно, что папка boost_1_47_0\libs
не содержит никаких библиотечных файлов, кроме файлов BJam и прочего, но это не должно быть проблемой, так как это нормальный способ сборки Boost на Windows из источник.
Я посмотрел на вывод Debug из файла FindBoost.cmake
(я использую скрипт по умолчанию из CMake 2.8), и он, похоже, не смотрит на bin.v2
. Вместо этого он ищет boost_ROOT/lib
, но когда я скопировал содержимое из bin.v2\libs
в lib, он все равно ничего не нашел.
Так что же это за элегантный способ найти Boost, который также будет работать на других платформах с распространенными дистрибутивами Boost?