tools para mpkg more mac for developer descargar apple xcode macos gcc osx-leopard

xcode - para - Configuración de GCC 4.2 como el compilador predeterminado en Mac OS X Leopard



mac command line tools (6)

Estoy seguro de que debe haber una manera de hacer esto. Como probablemente sabrá, las últimas versiones de Xcode (y de hecho creo que todas las versiones de Xcode) en Leopard vienen con GCC 4.0.1 y GCC 4.2. GCC 4.0.1 es el compilador del sistema predeterminado, mientras que GCC 4.2 es un compilador opcional que puede establecer en la configuración del proyecto Xcode.

¿Alguien sabe cómo configurar GCC 4.2 como el compilador predeterminado para todas las opciones? Preferiblemente, el uso de la línea de comandos y la configuración de scripts aún usan GCC 4.0.1 en lugar de GCC 4.2, sin importar lo que haga en Xcode. Estoy asumiendo que es simplemente un caso de cambiar una variable de ruta o algo así, pero estoy perplejo en este caso.

Cualquier ayuda es apreciada. Gracias.


Como ni Apple ni Darwin Ports tienen el programa gcc_select para cambiar la versión predeterminada del compilador del sistema (como existe en GNU / Linux), me gustaría estar seguro con XCode (y el resto del sistema) y recomendaría para dejar los enlaces simbólicos tal como están y en su lugar configurar las variables de entorno que anulan qué versión de GCC usar.

En mi archivo .profile tengo lo siguiente

export CC=/usr/bin/gcc-4.2 export CPP=/usr/bin/cpp-4.2 export CXX=/usr/bin/g++-4.2

Y compilé con éxito las siguientes bibliotecas con GCC 4.2 desde la fuente.

  • OpenSSL
  • libjpeg
  • libpng
  • zlib
  • GST

Sin embargo ... No pude conseguir que Boost 1.39 reconociera las variables de entorno, así que para compilar Boost con GCC 4.2 necesité cambiar los enlaces simbólicos en / usr / bin / para que apuntaran a gcc v4.2

Después de tanto tiempo, las bibliotecas de Boost terminaron de compilar con GCC 4.2 y restauré los enlaces simbólicos a la versión original del sistema gcc-4.0.


Como necesito crear cosas donde se ignora el CC Env y termino cambiando a menudo, escribí un sencillo gcc_select en Python. Pensé que también podría publicarlo aquí. Invocarlo con arg 4.0 o 4.2 o sin arg para ver los enlaces simbólicos actuales. Necesitaría modificaciones si tiene versiones que no sean 4.0 y 4.2:

#!/usr/bin/python import sys import os os.chdir(''/usr/bin'') files = [''cc'', ''gcc'', ''c++'', ''g++''] if ''4.0'' in sys.argv: ver = ''4.0'' elif ''4.2'' in sys.argv: ver = ''4.2'' else: print "Unknown gcc version. Current setting:" os.system(''ls -al %s'' % '' ''.join(files)) sys.exit(1) os.system(''rm %s'' % '' ''.join(files)) for f in files: os.system(''ln -s %s-%s %s'' % (f, ver, f)) print "Changed to gcc version %s" % ver


En la ventana de información del proyecto o destino, establezca la configuración de compilación "Versión del compilador C / C ++" (GCC_VERSION).

O en la ventana de información de destino, puede cambiar la "regla del sistema C" a su versión GCC favorita.

Actualización: En cuanto a la línea de comando, le dejaría a Leopard la decisión de cuál debería ser el compilador predeterminado. Si desea utilizar un compilador diferente con herramientas como Autotools configure, es mejor que defina la variable CC.

CC=gcc-4.2 ./configure

o

export CC=gcc-4.2


Mi experiencia (limitada), el cambio de CC en .profile no cambia la configuración de Lion (10.7.2) a i686-apple-darwin11-llvm-gcc-4.2. Me pregunto si esto tiene algo que ver con el enlace simbólico de Apple: un parcial: ls -la /usr/bin | grep .*gcc.* ls -la /usr/bin | grep .*gcc.* :

lrwxr-xr-x 1 root wheel 12 25 oct 19:31 cc -> llvm-gcc-4.2 lrwxr-xr-x 1 root wheel 12 25 oct 19:31 gcc -> llvm-gcc-4.2 lrwxr-xr-x 1 root admin 32 25 oct 19:31 llvm-gcc-4.2 -> ../llvm-gcc-4.2/bin/llvm-gcc-4.2

Tengo cuidado de romper estos y agregar los míos a usr / bin / gcc-4.2 según la respuesta de Martin v. Löwis.


Podría estar equivocado, pero pensé que para eso estaba Xcode-select.

xcode-select --switch /path_to_tool_suite

Como dije, no estoy al 100% en esto, pero creo que establecerá el valor predeterminado para todos los programas, incluidos Terminal y otras aplicaciones que llaman al sistema operativo para usar un compilador.


Uso de la línea de comandos para todos los scripts de configuración:

cd /usr/bin rm cc gcc c++ g++ ln -s gcc-4.2 cc ln -s gcc-4.2 gcc ln -s c++-4.2 c++ ln -s g++-4.2 g++

Haga un registro de los objetivos del enlace actual, para que pueda restaurarlos si lo desea.

Si no desea cambiar la configuración de todo el sistema, agregue un directorio en PATH antes de / usr / bin (por ejemplo, $HOME/bin ), y haga los enlaces simbólicos allí

No he probado si esto afecta los proyectos de Xcode, ya que no utilizo Xcode (solo la línea de comandos).