CMake Boost Multiprecision не найден - PullRequest
1 голос
/ 17 марта 2020

Вот мой файл CMakeLists.txt

cmake_minimum_required(VERSION 3.8)
project("pi-calc" VERSION 1.0)

find_package(Boost REQUIRED COMPONENTS multiprecision)
add_executable(pi-calc main.cpp)
target_link_libraries(pi-calc PRIVATE Boost::boost Boost::multiprecision)

Это основная часть сообщения об ошибке, устраняющая ошибку CMake find_package. Стеки вызовов

Could NOT find Boost (missing: multiprecision) (found version "1.67.0")

Я пытался поискать в поиске решение, но ничего не смог найти.

1 Ответ

2 голосов
/ 18 марта 2020

Многие библиотеки Boost являются библиотеками только для заголовков, включая библиотеку multiprecision. Вам нужно только явно вызвать библиотеки в COMPONENTS, которые не только для заголовка, показанные в списке здесь .

Если вам нужна библиотека только для заголовков, такая как multiprecision, вы получите ее бесплатно от цели Boost::boost, которая включает все заголовки Boost. Нет необходимости перечислять COMPONENTS:

cmake_minimum_required(VERSION 3.8)
project("pi-calc" VERSION 1.0)

find_package(Boost REQUIRED)
add_executable(pi-calc main.cpp)
target_link_libraries(pi-calc PRIVATE Boost::boost)

Обратите внимание, что в CMake версии 3.15 и более поздних вы должны вместо этого использовать цель Boost::headers, которая заменяет Boost::boost цель.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...