Я пытаюсь использовать сценарий 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?