Per i miei scopi, è proprio la cosa che crea la libreria boost per te, non ero a conoscenza che potessi fare qualcos'altro con esso quindi non capisco cosa potresti significare migrando ad esso. E mi dispiace, ma non so cosa sia la marmellata normale. Dal momento che nessun altro ha fornito una risposta, mi limiterò a comprenderlo.
Boost è una raccolta di classi e funzioni per C++ utili per varie attività. Le classi e le funzioni di boost sono raggruppate in librerie. Alcune librerie hanno tutto il loro codice nei file di intestazione che puoi usare semplicemente usando un'istruzione #include per il preprocessore, mentre altre (come il filesystem o la libreria di espressioni regolari) hanno parte della loro implementazione nei file .cpp.
La compilazione di questi file .cpp può richiedere anni (è come 30 minuti a seconda di ciò che si sta compilando) e sarebbe davvero un problema se ci volesse mezz'ora ogni volta che si desidera ricompilare il programma. Quindi, ciò che hanno fatto è solo per quelle librerie che sono in parte archiviate in file .cpp, puoi precompilarle in un file .lib, e questo è lo scopo di boost jam. Ciò significa che dovrai dedicare solo mezz'ora alla compilazione di un numero una volta, e da quel momento in poi non dovrai più attendere ancora mezz'ora.
Tuttavia, come potete immaginare, ciascuna libreria di boost è composta da molti file cpp e molti file di intestazione, e ci sono molti diversi tipi di versioni (versioni di debug, versioni di rilascio, multi-thread, ecc.) E quindi non è un semplice processo per compilare da soli la libreria boost. È qui che entra in gioco boost. Gli dai il comando di compilare le librerie e poi invia tutti i comandi al compilatore e alla fine avrai una raccolta di file .lib precompilati, uno per ogni diverso sapore di ogni libreria. I file di intestazione in qualche modo dicono al linker quali file lib includere, quindi se hai la corretta configurazione dei percorsi, il sapore corretto del file .lib precompilato sarà automaticamente collegato al tuo programma, risparmiando così una compilazione di 30 minuti.
Si può vedere quali librerie devono essere compilate da boost jam e quali librerie non guardano questa pagina: http://www.boost.org/doc/libs/1_37_0 - se una libreria non ha bisogno di un file lib (e quindi non richiede di fare confusione con boost jam first), dirà "Build & Link: Header only" mentre se una libreria richiede di precompilare un file lib, dirà "Build & Link: collegamento automatico".
Inoltre, se si utilizza Windows, è possibile scaricare i file .lib precompilati in modo da non dover utilizzare l'inceppamento boost. Per ottenere ciò, ciò che dovresti fare è andare alla pagina www.boost.org, andare alla sezione Getting Started e seguirla fino in fondo per essere sicuro di avere tutto configurato correttamente. Uno dei collegamenti nella versione di Windows di quella pagina ti dice dove trovare i file .lib precompilati.
Voglio solo essere chiaro che sto solo postando questo perché ho pensato che potrebbe essere utile. Non ho mai usato la marmellata, ma sono passati giorni e nessuno ha risposto a questo tizio, quindi ho deciso di rispondere per la poca conoscenza che ho. –
Altri commenti (eventualmente aggiunti in seguito) indicano che Boost Jam è un sistema di compilazione; quindi va oltre la compilazione delle librerie di boost stesse. – Jaywalker
Questa risposta è semplicemente terribilmente errata e disinformata. –