CMake не находит библиотеки Boost

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

19
задан Peter Mortensen 3 September 2018 в 14:12
поделиться