Esto está estrechamente relacionado con mi previous question, que trata sobre el uso de CMake para crear una biblioteca estática en el iPhone. Lo conseguí para trabajar configurando el CMAKE_OSX_SYSROOT
.Cómo configurar CMake para crear una aplicación para el iPhone
Sin embargo, esto no funciona para crear una aplicación. Mi CMakeLists.txt
parece:
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})
Unas pocas notas:
- estoy dando explícitamente la opción de vincular
-framework
porquefind_library
no funcionó para todos los marcos (que encontró la mayoría de ellos, pero noOpenGLES
). No entiendo por qué, ya que están todos en la misma carpeta${SDK}/System/Library/Frameworks
. Esto me lleva a creer que estaba haciendo algo mal, pero no sé qué. - He añadido
MACOSX_BUNDLE
al comandoadd_executable
para que el tipo de producto generado seacom.apple.product-type.application
en lugar decom.apple.product-type.tool
, que aparentemente no existe en el iPhone.
En cualquier caso, la aplicación compila y enlaces de manera correcta, pero cuando lo ejecuto en el simulador, tengo la temida
Failed to launch simulated application: Unknown error.
Hay un montón de casos reportados de este problema en Google y stackoverflow , pero todas las soluciones implican limpiar o crear un nuevo proyecto y mover archivos; pero estoy compilando una copia nueva después de que CMake haga su trabajo, por lo que nada de eso se aplica.
Encontré this thread en la lista de correo de CMake, pero solo informa un éxito en la creación de una biblioteca, y luego se apaga.
Encontré su respuesta muy útil - Estaba realmente perdido con CMake y Xcode. Traté de usar una versión ligeramente modificada de tu archivo CMakeLists. Sin embargo, me encontré con algunos problemas extraños. ¿Podrías echar un vistazo a mi pregunta? http://stackoverflow.com/questions/5473448/cmake-and-xcode-cannot-find-interface-declaration-for-nsobject Gracias de antemano :) – Shade
Hay otra forma de recursos ahora, mira aquí: http://cmake.org/gitweb?p=cmake.git;a=blob;f=Tests/iOSNavApp/CMakeLists.txt Sin embargo, esto elimina la jerarquía del directorio, por lo que los nombres de archivos duplicados son un problema ... –