Я пытаюсь использовать сценарий 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 из исходного кода.
Я посмотрел на вывод отладки из файла FindBoost.cmake
(яЯ использую скрипт по умолчанию из CMake 2.8), и он, похоже, не рассматривает bin.v2
.Вместо этого он ищет boost_ROOT/lib
, но когда я скопировал содержимое из bin.v2\libs
в lib, он все равно ничего не нашел.
Так что же это элегантный способ найти Boost, который также будет работать на других платформах сраспространенные дистрибутивы Boost?