Это тесно связано с предыдущим вопросом , который касался использования CMake для создания статической библиотеки на iPhone. Я получил это для настройки CMAKE_OSX_SYSROOT
.
Однако это не работает для создания приложения. Мой CMakeLists.txt
выглядит так:
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})
Несколько примечаний:
- Я явно предоставляю ссылку
-framework
, потому чтоfind_library
не работает для всех фреймворков (он нашел большинство из них, но неOpenGLES
). Я не понимаю, почему, поскольку все они находятся в одной папке${SDK}/System/Library/Frameworks
. Это заставляет меня думать, что я делаю что-то неправильно, но я не знаю, что. - Я добавил
MACOSX_BUNDLE
в командуadd_executable
, чтобы сгенерированный тип продукта былcom.apple.product-type.application
вместоcom.apple.product-type.tool
, который, по-видимому, не существует на iPhone.
В любом случае приложение компилируется и правильно связывается, но когда я запускаю его в симуляторе, я получаю страшный
Failed to launch simulated application: Unknown error.
Существует множество сообщений об этой проблеме в google и stackoverflow, но все решения включают очистку или создание нового проекта и перемещение файлов; но я компилирую новую копию после того, как CMake выполняет свою работу, поэтому ничего из этого не имеет.
Я нашел этот поток в списке рассылки CMake, но он только сообщает об успехе в создании библиотеки, а затем peters out.