Construction pour MacOSX, mais liaison au fichier Dylib construit pour iOS Simulator

Je viens tout juste de passer à la version bêta de Xcode 5 avec les outils de ligne de commande du 15 avril 2013 et je vis l’avertissement suivant lors de l’exécution d’une version de cmake lors de la tentative standard de CMakeTestCComstackr.cmake de comstackr un programme de test simple:

cmake -version cmake version 2.8.11.2 ld: building for MacOSX, but linking against dylib built for iOS Simulator file '/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator7.0.sdk/usr/lib/libSystem.dylib' for architecture i386 lipo -info /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator7.0.sdk/usr/lib/libSystem.dylib Non-fat file: libSystem.dylib is architecture: i386 

L’étape de compilation est:

 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc -arch i386 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator7.0.sdk -o /Users/temp/testCComstackr.co -c /Users/temp/testCComstackr.c lipo -info /Users/temp/testCComstackr.co Non-fat file: testCComstackr.co is architecture: i386 

L’étape du lien est la suivante:

 /usr/local/bin/cmake -E cmake_link_script /Users/temp/link.txt --verbose=1 

où link.txt contient:

 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc -arch i386 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator7.0.sdk -Wl,-headerpad_max_install_names /Users/temp/testCComstackr.co -o testCComstackr 

Il semble que testCComstackr.co et libSystem.dylib soient tous deux i386, i386 étant spécifié dans link.txt et i386 étant la bonne architecture pour le simulateur, je ne sais donc pas pourquoi il pense construire pour MacOSX. Peut-être qu’une option en ligne de commande est fausse :(.

Merci pour toute aide!

Le problème était que Xcode 5 remplaçait gcc par clang et ajoutait une option “-sortingple” spécifiant OSX comme cible. Si vous passez “-miphoneos-version-min = 7.0” sur les deux lignes de commande gcc, cela fonctionnera. Vous pouvez voir la ligne de commande clang si vous passez “–verbose” à gcc. Il est également nécessaire d’append à PATH pour Xcode 5 afin que cmake puisse trouver les outils nécessaires: export PATH = / Applications / Xcode5-DP6.app / Sommaire / Developer / Toolchains / XcodeDefault.xct‌ oolchain / usr / bin: / Applications /Xcode5-DP6.app/Contents/Developer/usr/bin:$PATH Rien de tout cela n’est officiel .. mais fonctionne pour moi jusqu’à présent.

lancez ce commentaire sur votre client.app:

 export PATH=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xct‌oolchain/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:$PATH