Ceci est étroitement lié à mon previous question, qui consistait à utiliser CMake pour construire une bibliothèque statique sur l'iPhone. J'ai réussi à régler le CMAKE_OSX_SYSROOT
.Comment configurer CMake pour créer une application pour l'iPhone
Toutefois, cela ne fonctionne pas pour créer une application. Mon CMakeLists.txt
ressemble:
project(TEST)
set(CMAKE_OSX_SYSROOT iphoneos2.2.1)
set(CMAKE_OSX_ARCHITECTURES "$(ARCHS_STANDARD_32_BIT)")
set(CMAKE_EXE_LINKER_FLAGS
"-framework Foundation -framework OpenGLES -framework AudioToolbox -framework CoreGraphics -framework QuartzCore -framework UIKit -framework OpenAL"
)
set(SRC --my files--)
add_executable(iphone-test MACOSX_BUNDLE ${SRC})
Quelques notes:
- Je donne explicitement l'option de liaison
-framework
parce quefind_library
ne fonctionne pas pour tous les cadres (il a trouvé la plupart d'entre eux, mais pasOpenGLES
). Je ne comprends pas pourquoi, puisqu'ils sont tous dans le même dossier${SDK}/System/Library/Frameworks
. Cela m'amène à croire que je faisais quelque chose de mal, mais je ne sais pas quoi. - J'ai ajouté
MACOSX_BUNDLE
à la commandeadd_executable
pour que le type de produit généré soitcom.apple.product-type.application
au lieu decom.apple.product-type.tool
, ce qui apparemment n'existe pas sur l'iPhone.
Dans tous les cas, l'application compile et liens correctement, mais quand je le lance dans le simulateur, je reçois la redoutée
Failed to launch simulated application: Unknown error.
Il y a beaucoup de cas signalés de ce problème sur Google et stackoverflow , mais toutes les solutions impliquent le nettoyage ou la création d'un nouveau projet et le déplacement de fichiers; mais je compile une nouvelle copie après que CMake ait fait son travail, donc rien de tout cela ne s'applique.
J'ai trouvé this thread dans la liste de diffusion CMake, mais cela ne signale que le succès de la construction d'une bibliothèque, puis disparaît.
J'ai trouvé votre réponse très utile - j'étais vraiment perdu avec CMake et Xcode. J'ai essayé d'utiliser une version légèrement modifiée de votre fichier CMakeLists. Cependant, j'ai rencontré des problèmes étranges. Pourriez-vous peut-être jeter un coup d'oeil à ma question? http://stackoverflow.com/questions/5473448/cmake-and-xcode-cannot-find-interface-declaration-for-nsobject Merci d'avance :) – Shade
Il y a une autre façon pour les ressources maintenant, voir ici: http://cmake.org/gitweb?p=cmake.git;a=blob;f=Tests/iOSNavApp/CMakeLists.txt Cependant, cela supprime la hiérarchie des répertoires, donc les noms de fichiers en double sont un problème ... –