2010-05-08 12 views
5

Sto costruendo le librerie boost con bjam sia per il compilatore intel che per vs2008, e non posso dire quali ottimizzazioni vengono passate al compilatore da bjam. Per uno dei gcc del compilatore, posso vedere alcune ottimizzazioni in uno dei file bjam, ma non riesco a trovare i flag di ottimizzazione per i compilatori a cui tengo. Quindi, le mie domande sono:Come dire quali ottimizzazioni bjam sta usando per costruire boost

  1. Qualcuno sa dove si trovano i flag di ottimizzazione di default?
  2. Se sono dichiarati all'interno di bjam, qualcuno sa come posso ignorarli?
+0

un sacco di librerie sono solo di intestazione, sei preoccupato per l'ottimizzazione di una particolare libreria, i thread per esempio? – Anycorn

+0

Mi occupo di boost :: gregorian :: date che è parzialmente una libreria statica – Steve

+0

controlla questa domanda, dovrebbe rispondere: http://stackoverflow.com/questions/2722421/how-to-determine-value -di-CXXFLAGS-in-bjam-o-accodare-to-it – Anycorn

risposta

8

Se siete interessati a guardare l'intero set di opzioni che sono passati per richiamare il compilatore quando si costruisce è possibile eseguire bjam con le -n -a opzioni e il resto delle opzioni di costruzione per darvi il set completo di comandi invocato e tutti i file di risposta generati (vedere Boost Jam Options). Inoltre puoi guardare direttamente le fonti di Boost Build e vedere in cosa sono tradotte le funzionalità specificate (vedi Boost Build Tools Files). Per esempio:

Si può probabilmente capire lo stesso per altri compilatori semplicemente guardando le fonti perché sono abbastanza auto-esplicative. E puoi cercare "<optimization>" e "<inlining>" nelle fonti *.jam.

È possibile sovrascriverli nella riga di comando specificando l'opzione feature=value nella riga di comando durante la creazione. Le opzioni corrispondono alle specifiche <feature>value che vedi nei file del toolset. Ad esempio, per sovrascrivere la funzione di ottimizzazione specificata nella riga di comando, ad esempio "optimization=speed". Se si desidera un controllo più accurato, è necessario approfondire le specifiche di Boost Build e probabilmente creare una variante propria per definire opzioni e caratteristiche specifiche con cui costruire.

Problemi correlati