stdc sirve que pkg para c++ linux unix boost pkg-config

sirve - ¿Cómo usar la biblioteca de C++ Boost con pkg-config?



#include bits/stdc++.h para que sirve (2)

Estaba enfrentando un problema similar con el impulso. Escribió un simple script en Python para generar un archivo .pc. Me ahorró el dolor de haber escrito todos los comandos del enlazador. Lo he publicado en https://github.com/nmante/pkg-config-generator .

Esencialmente, le da al script un directorio donde los archivos de la biblioteca son (.so, .a, .dylib) y generará los comandos del vinculador (por ejemplo, -lboost_graph). Siéntase libre de ajustar y bifurcar a sus necesidades.

Aquí hay un archivo boost.pc de muestra que generé para mi máquina (Mac OS X). Puede modificarlo manualmente o puede usar mi https://github.com/nmante/pkg-config-generator para generarlo en su máquina.

# Package Information for pkg-config prefix=/usr/local/Cellar/boost/1.60.0_2 exec_prefix=${prefix} libdir=${exec_prefix}/lib includedir_old=${prefix}/include/boost includedir_new=${prefix}/include Name: Boost Description: Boost is awesome Version: 1.60.0 Libs: -L${exec_prefix}/lib -lboost_prg_exec_monitor-mt -lboost_math_c99f-mt -lboost_unit_test_framework-mt -lboost_container-mt -lboost_log_setup -lboost_math_tr1l -lboost_graph-mt -lboost_wserialization-mt -lboost_log-mt -lboost_math_c99f -lboost_type_erasure -lboost_signals-mt -lboost_test_exec_monitor -lboost_filesystem -lboost_thread-mt -lboost_math_tr1f-mt -lboost_date_time -lboost_timer -lboost_math_tr1f -lboost_test_exec_monitor-mt -lboost_container -lboost_math_tr1 -lboost_type_erasure-mt -lboost_program_options-mt -lboost_graph -lboost_log_setup-mt -lboost_random -lboost_system -lboost_system-mt -lboost_locale-mt -lboost_wserialization -lboost_regex -lboost_exception -lboost_timer-mt -lboost_signals -lboost_filesystem-mt -lboost_math_c99-mt -lboost_math_tr1-mt -lboost_serialization-mt -lboost_serialization -lboost_prg_exec_monitor -lboost_exception-mt -lboost_coroutine -lboost_math_c99 -lboost_iostreams-mt -lboost_random-mt -lboost_program_options -lboost_atomic-mt -lboost_date_time-mt -lboost_math_c99l -lboost_math_tr1l-mt -lboost_context-mt -lboost_regex-mt -lboost_coroutine-mt -lboost_log -lboost_chrono-mt -lboost_wave-mt -lboost_iostreams -lboost_chrono -lboost_unit_test_framework -lboost_math_c99l-mt Cflags: -I${includedir_old} -I${includedir_new}

Compilé e instalé con éxito la última versión de la biblioteca de Boost en mi máquina Linux. Ahora, me gustaría poder usar pkg-config para facilitar el proceso de proporcionar parámetros de enlace con GCC.

Ya que soy demasiado perezoso para codificar a mano mi propio archivo .pc, ¿hay un script / herramienta que genere automáticamente el archivo .pc necesario o de alguna otra forma actualice pkg-config con indicadores de refuerzo?

(Si alguien ya tiene ese archivo .pc, un recurso compartido también sería bienvenido).


Lo que estás buscando parece ser un poco complicado, y una característica solicitada desde hace mucho tiempo, como se indica en esta publicación de 3 años https://svn.boost.org/trac/boost/ticket/1094 en el trac de Boost. Al leerlo, se muestra que la función se pospuso repetidamente y nunca se implementó (a partir de 1.4.3). La causa de la incapacidad de generar un archivo .pc utilizable por pkg-config tiene que ver con la inconsistencia de boost en el nombramiento de sus versiones de biblioteca / variantes de compilación.

FWIW, una alternativa para "automatizar" el proceso de construcción es usar autotools (autoconf / automake). Hay un enlace que podría ser de utilidad para usted (que no puedo publicar porque SO cree que soy un spammer en lugar de un recién llegado), simplemente busque "tsuna boost m4 github de tsuna" y debería llevarlo allí :)