2010-05-08 6 views
5

Estoy compilando las bibliotecas de impulso con bjam para el compilador de intel y el vs2008, y no puedo decir qué optimizaciones se están pasando al compilador de bjam. Para uno de los gcc del compilador, puedo ver algunas optimizaciones en uno de los archivos bjam, pero no puedo encontrar los indicadores de optimización para los compiladores que me interesan. Por lo tanto, mis preguntas son:Cómo saber qué optimizaciones está usando bjam para generar impulso

  1. ¿Alguien sabe dónde están ubicados los indicadores de optimización predeterminados?
  2. Si se declaran dentro de bjam, ¿alguien sabe cómo puedo anularlos?
+0

muchas bibliotecas son solo de encabezado, ¿le preocupa la optimización de una biblioteca en particular, por ejemplo, subprocesos? – Anycorn

+0

Me preocupa boost :: gregorian :: date que es parcialmente una biblioteca estática – Steve

+0

echa un vistazo a esta pregunta, debe responderle: http://stackoverflow.com/questions/2722421/how-to-determine-value -of-cxxflags-in-bjam-or-append-to-it – Anycorn

Respuesta

8

Si usted está interesado en el estudio de todo el conjunto de opciones que se pasan a invocar el compilador cuando la construcción se puede ejecutar bjam con los -n -a opciones y el resto de las opciones de construcción para darle el conjunto completo de comandos invocado, y cualquier archivo de respuestas generado (vea Boost Jam Options). También puede consultar las fuentes de Boost Build directamente y ver a qué se traducen las características especificadas (consulte Boost Build Tools Files). Por ejemplo:

Es probable que pueda averiguar la misma para otros compiladores simplemente mirando a través de las fuentes ya que son bastante auto explicativas. Y puede buscar "<optimization>" y "<inlining>" en las fuentes *.jam.

Puede sobrescribirlos en la línea de comando especificando la opción feature=value en la línea de comando al construir. Las opciones coinciden con las especificaciones <feature>value que ve en los archivos del conjunto de herramientas. Por ejemplo, para anular la función de optimización, debe especificar en la línea de comandos algo como "optimization=speed". Si desea un control más detallado, deberá profundizar en las especificaciones de Boost Build y es probable que tenga que crear una variante propia para definir las opciones y funciones específicas para compilar.

Cuestiones relacionadas