2011-07-07 19 views
15

¿Cómo cambiar el compilador (GCC) en Qt? He instalado GCC 4.4 y 4.6. En el momento Qt usa 4.4, pero me gustaría usar 4.6. ¿Cómo hacerlo?Cambiando el compilador en Qt

+0

¿Cómo es que usa uno? Se compila con cualquier compilador que proporcione ... ¿O se refiere a la distribución binaria de Qt para Windows con su propia instancia de mingw? – vines

+0

@vines sí, mingw por el momento, pero me gustaría usar GCC 4.6 – smallB

Respuesta

3

Si está utilizando Qt Creator 2.2.0, puede probar Tools > Options > Tool Chains y luego Add > MinGW.

+6

Lo hice pero parece que todavía está usando la versión anterior. No hay opción para eliminar la configuración anterior. – smallB

14

En la secuencia de construcción que pueden tener un comando qmake como qmake YourProject.pro -r -spec linux-g++-64 la elección de la herramienta de la cadena se realiza en el archivo spec aquí linux-g++-64. Encontrará este archivo en path-to-the-sdk/qt/mkspecs/linux-g++-64 (¿entiende bien el concepto?) ... Si abre el archivo de especificaciones, verá que incluye la especificación linux y la especificación g++.

Una solución es copiar el archivo de especificaciones g++ y cambiarle el nombre g++-4.6 por ejemplo, editar y cambiar:

QMAKE_CC = gcc 
QMAKE_CXX = g++ 

a:

QMAKE_CC = gcc-4.6 
QMAKE_CXX = g++-4.6 

Idem para la linux-g++-64 se puede copiar a linux-g++-4.6-64 y modifique el comando include(...) para incluir su nuevo archivo g++-4.6.

Finalmente construya su proyecto con qmake YourProject.pro -r -spec linux-g++-4.6-64.

espero que sea claro :) ...

6

me doy cuenta que soy muy tarde a la fiesta, pero en Linux es tan simple como sigue:

qmake -makefile <your-project.pro> -spec linux-clang 

En mi sistema, todo las clases de diversos mkspecs están disponibles en:

/usr/lib/x86_64-linux-gnu/qt5/mkspecs

5

Correr make CC=my-custom-gcc CXX=my-custom-g++ LINK=my-custom-g++ parece hacer el truco para mí. Pero puede que no sea 100% seguro (es decir, no me sorprendería si ejecutando qmake con las especificaciones de Linux y luego especificando los compiladores mingw32 fallarían).