Ciò è strettamente legato al mio previous question, che stava usando CMake per costruire una libreria statica su iPhone. Ho ottenuto che funzionasse impostando il CMAKE_OSX_SYSROOT
.Come impostare CMake per costruire un app per l'iPhone
Tuttavia, questo non funziona per creare un'app. Il mio CMakeLists.txt
assomiglia:
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})
Alcune note:
- sto dando esplicitamente il
-framework
collega opzione perchéfind_library
non ha funzionato per tutti i quadri (ha trovato la maggior parte di loro, ma nonOpenGLES
). Non capisco perché, poiché sono tutti nella stessa cartella${SDK}/System/Library/Frameworks
. Questo mi porta a credere che stavo facendo qualcosa di sbagliato, ma non so cosa. - Ho aggiunto
MACOSX_BUNDLE
al comandoadd_executable
in modo che il tipo di prodotto generato siacom.apple.product-type.application
anzichécom.apple.product-type.tool
, che a quanto pare non esiste su iPhone.
In ogni caso, l'applicazione compila e collegamenti in modo corretto, ma quando l'eseguo nel simulatore, ottengo la temuta
Failed to launch simulated application: Unknown error.
Ci sono un sacco di casi segnalati di questo problema su Google e StackOverflow , ma tutte le soluzioni prevedono la pulizia o la creazione di un nuovo progetto e lo spostamento di file; ma sto compilando una nuova copia dopo che CMake fa il suo lavoro, quindi niente di tutto ciò si applica.
Ho trovato this thread nella mailing list di CMake, ma riporta solo un successo nella creazione di una libreria e quindi peters out.
Ho trovato la tua risposta molto utile - Ero davvero perso con CMake e Xcode. Ho provato a utilizzare una versione leggermente modificata del tuo file CMakeLists. Tuttavia, ho incontrato alcuni problemi strani. Potresti forse dare un'occhiata alla mia domanda? http://stackoverflow.com/questions/5473448/cmake-and-xcode-cannot-find-interface-declaration-for-nsobject Grazie in anticipo :) – Shade
Ora c'è un altro modo per le risorse, vedi qui: http://cmake.org/gitweb?p=cmake.git;a=blob;f=Tests/iOSNavApp/CMakeLists.txt Tuttavia, questo rimuove la gerarchia delle directory, quindi i nomi dei file duplicati sono un problema ... –