C'è una macro eccellente boost.m4 che è possibile includere nel progetto nella sottodirectory m4
. Queste macro si trovano con AC_CONFIG_MACRO_DIR([m4])
in configure.ac
.
Aggiungi ACLOCAL_AMFLAGS = -I m4 --install
al livello superiore Makefile.am
, utilizzato da automake
.
Ecco perché è una buona macro quali:
BOOST_REQUIRE([1.54],[ACTION-IF-NOT-FOUND])
Questo definirà BOOST_CPPFLAGS
quale è possibile aggiungere a CPPFLAGS
, utilizzare in un AC_SUBST
, ecc
Per i singoli componenti Boost, è possibile specificare build di debug, statica costruisce, ecc Ma il (tipicamente) multi-thread, librerie dinamiche sono migliori, ad esempio,
BOOST_FILESYSTEM([mt])
definirà BOOST_FILESYSTEM_LIBS
e BOOST_FILESYSTEM_LDFLAGS
. Come un altro bonus, se la libreria si basa su, diciamo, Boost.System, allora queste dipendenze delle librerie vengono aggiunti automaticamente al LIBS
, LDFLAGS
, ecc
Si dovrebbe solo specificare che un impianto Boost è necessario, piuttosto che cercando di distribuirlo. È facilmente costruito e installato dal sorgente, o da pacchetti precompilati. Il primo richiede molto tempo, ma è meglio avere una build 'ottimizzata' sul sistema. C'è un sacco di software che può utilizzare un'implementazione Boost (robusta e ottimizzata).
Quindi utilizzare il messaggio di errore BOOST_REQUIRE
se non è disponibile una versione accettabile.
fonte
2013-08-16 21:18:49
Grazie. Puoi dare un esempio di come usare 'AC_CONFIG_MACRO_DIR' - Trovo le perplessioni dell'AC. Inoltre: se l'utente installa Boost secondo le indicazioni del sito web, AC sarà in grado di trovarlo? Mi piacerebbe che il messaggio di errore dicesse cosa fare "Errore: è richiesto Boost. Installa come indicato su http: // ..." – SRobertJames
Il Boost del sistema potrebbe essere obsoleto e/o incompatibile, quindi potresti dover installa una versione diversa nella tua home directory (quando non hai accesso root). – DanielKO
In questo caso, probabilmente cercherò una versione preinstallata Boost che funzionerebbe. In caso contrario, è possibile patchare il sorgente per la versione Boost installata o scaricare Boost dal sorgente e crearlo. – ldav1s