Ordenar errores de compilación cuando se usan varias versiones diferentes de Xcode

3

Estoy en Yosemite y tratando de compilar un paquete de software usando g++ . La compilación de este paquete en particular ha funcionado previamente en Mountain Lion bajo Xcode 4.6.3, pero ahora tengo Xcode 6.1.1, y el software no se compila. Por esta razón, me gustaría poder cambiar entre diferentes versiones de Xcode. Debo decir que estoy trabajando exclusivamente con las herramientas de línea de comandos (CLT), make , g++ y similares. Ahora instalé una versión anterior de Xcode, 4.6.3, de modo que la situación es la siguiente:

  • /Applications/Xcode.app: versión actual de Xcode, 6.1.1
  • /Applications/Xcode4.6.3/Xcode.app: versión anterior de Xcode, 4.6.3

Estaba planeando cambiar entre estos dos usando sudo xcode-select -s PATH . Por lo que sé, este comando funciona y puedo verificar el resultado usando sudo xcode-select -p . Además, tengo CLT instaladas en /usr/bin , de modo que, por ejemplo, which g++ muestra /usr/bin/g++ . Aún así, si cambio a la versión anterior de Xcode, el paquete no se compilará. Curiosamente, encuentre debajo de la salida de g++ -v para las dos versiones diferentes de Xcode:

Para Xcode 6.1.1:

g++ -v
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 6.0 (clang-600.0.56) (based on LLVM 3.5svn)
Target: x86_64-apple-darwin14.1.0
Thread model: posix

Para Xcode 4.6.3:

g++ -v
couldn't understand kern.osversion '14.1.0'
Using built-in specs.
Target: i686-apple-darwin11
Configured with: /private/var/tmp/llvmgcc42/llvmgcc42-2336.11~182/src/configure --disable-checking --enable-werror --prefix=/Applications/Xcode.app/Contents/Developer/usr/llvm-gcc-4.2 --mandir=/share/man --enable-languages=c,objc,c++,obj-c++ --program-prefix=llvm- --program-transform-name=/^[cg][^.-]*$/s/$/-4.2/ --with-slibdir=/usr/lib --build=i686-apple-darwin11 --enable-llvm=/private/var/tmp/llvmgcc42/llvmgcc42-2336.11~182/dst-llvmCore/Developer/usr/local --program-prefix=i686-apple-darwin11- --host=x86_64-apple-darwin11 --target=i686-apple-darwin11 --with-gxx-include-dir=/usr/include/c++/4.2.1
Thread model: posix
gcc version 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.11.00)

Así que mis preguntas son:

¿A qué se refiere el mensaje couldn't understand kern.osversion 14.1.0 ? ¿Es esto algo de lo que debería preocuparme?

¿Por qué se sigue mostrando

--prefix=/Applications/Xcode.app/Contents/Developer/usr/llvm-gcc-4.2

en la salida de g++ -v después de seleccionar la versión anterior, apuntando al nuevo paquete de Xcode, a pesar de que cambié la ruta de Xcode con sudo xcode-select -s PATH ?

¿Cuál es su forma preferida de tener varias versiones de Xcode, cada una con su propio conjunto de CLT, instaladas al mismo tiempo?

Sería genial si alguien pudiera aclarar las cosas.

    
pregunta Sebastian Sulger 14.02.2015 - 13:52

1 respuesta

1

Estás en la mejor forma de administrar las cosas.

Haga que su script de compilación llame a xcode-select para elegir el compilador y los encabezados en los que prefiere que compile cada proyecto. No he tenido ningún problema teniendo tres versiones de Xcode funcionando así. (6, 7 y 7.1)

    
respondido por el bmike 25.09.2015 - 00:35

Lea otras preguntas en las etiquetas