boost cmake

Cómo determinar los nombres de la biblioteca Boost para CMake



(2)

La parte COMPONENTS de FIND_PACKAGE solo busca bibliotecas compiladas. No puede verificar las bibliotecas de solo encabezado que constituyen una parte importante de Boost. Solo hay unas pocas bibliotecas que requieren enlaces (principalmente aquellas que realizan tareas específicas de la plataforma).

De sus ejemplos, solo el thread , las signals (en contraste con las signals2 que son solo de cabecera), el system y las program_options deben compilarse de antemano y luego vincularse con su programa. Para el resto, es suficiente incluir los archivos de encabezado relevantes.

Por lo tanto, es suficiente agregar ${Boost_INCLUDE_DIRS} a los directorios de inclusión de su destino.

Consulte aquí una lista de las bibliotecas de estas bibliotecas. ¿Qué bibliotecas de refuerzo son solo de encabezado?

Estoy tratando de averiguar qué componentes Find en CMakeList.txt para las bibliotecas de boost .

Miré este directorio /usr/local/include/boost . Y al azar escojo algunas de las carpetas e intento usar FIND_PACKAGE . Estos siguientes todo funciona bien.

FIND_PACKAGE(Boost COMPONENTS thread system log log_setup signals graph memory_order program_options REQUIRED)

El particular que estoy usando es property_tree . No está funcionando y produce el siguiente mensaje de error:

Error de CMake en /Applications/CMake.app/Contents/share/cmake-3.1/Modules/FindBoost.cmake:1182 (mensaje):

No se pueden encontrar las bibliotecas Boost solicitadas.

Versión de impulso: 1.55.0

Impulso incluye ruta: / usr / local / include

No se pudieron encontrar las siguientes bibliotecas estáticas de Boost:

boost_property_tree

¿Alguien podría explicar cómo o dónde puedo encontrar los nombres de biblioteca adecuados para el impulso?


Si se compila la biblioteca boost, entonces el nombre del componente es básicamente el nombre de la biblioteca en minúscula sin prefijos y sufijos (por ejemplo, para boost_system-vc141-mt-x64-1_66.lib sería ''system'')

También vea aquí: https://cmake.org/cmake/help/v3.10/module/FindBoost.html