Smistamento degli errori di compilazione quando si utilizzano più versioni diverse di Xcode

3

Sono su Yosemite e sto provando a compilare un pacchetto software usando g++ . La compilazione di questo particolare pacchetto ha precedentemente funzionato su Mountain Lion con Xcode 4.6.3, ma ora ho Xcode 6.1.1 e il software non verrà compilato. Per questo motivo, mi piacerebbe poter passare tra diverse versioni di Xcode. Devo dire che sto lavorando esclusivamente con gli strumenti da riga di comando (CLT), make , g++ e simili. Ora ho installato una versione precedente di Xcode, 4.6.3, in modo che la situazione sia la seguente:

  • /Applications/Xcode.app: versione corrente di Xcode, 6.1.1
  • /Applications/Xcode4.6.3/Xcode.app: versione precedente di Xcode, 4.6.3

Stavo programmando di passare tra questi due utilizzando sudo xcode-select -s PATH . Per quanto ne so, questo comando funziona, e posso controllare il risultato usando sudo xcode-select -p . Inoltre, ho CLT installati in /usr/bin , quindi ad esempio which g++ mostra /usr/bin/g++ . Tuttavia, se passo alla versione Xcode precedente, il pacchetto non verrà compilato. È interessante notare che trovi sotto l'output di g++ -v per le due diverse versioni di Xcode:

Per 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

Per 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)

Quindi le mie domande sono:

A cosa si riferisce il messaggio couldn't understand kern.osversion 14.1.0 ? È qualcosa di cui dovrei preoccuparmi?

Perché continua a mostrare

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

nell'output di g++ -v dopo aver selezionato la versione precedente, indicando il nuovo pacchetto Xcode, anche se ho cambiato il percorso Xcode usando sudo xcode-select -s PATH ?

Qual è il tuo modo preferito di avere più versioni di Xcode, ciascuna con il proprio set di CLT, installato nello stesso momento?

Sarebbe bello se qualcuno potesse chiarire le cose.

    
posta Sebastian Sulger 14.02.2015 - 13:52
fonte

1 risposta

1

Sei nel modo migliore per gestire le cose.

Chiedi allo script build di chiamare xcode-select per scegliere il compilatore e le intestazioni a cui preferisci compilare ogni progetto. Non ho avuto problemi con l'esecuzione di tre versioni di Xcode. (6, 7 e 7.1)

    
risposta data 25.09.2015 - 00:35
fonte

Leggi altre domande sui tag