【发布时间】:2009-05-04 22:28:54
【问题描述】:
这与我的previous question 密切相关,是关于使用 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中。这让我相信我做错了什么,但我不知道是什么。 - 我在
add_executable命令中添加了MACOSX_BUNDLE,这样生成的产品类型将是com.apple.product-type.application,而不是com.apple.product-type.tool,这在iPhone 上显然不存在。
无论如何,应用程序编译和链接正确,但是当我在模拟器中运行它时,我感到很害怕
Failed to launch simulated application: Unknown error.
在 google 和 stackoverflow 上有很多关于此问题的报告实例,但所有解决方案都涉及清理或创建新项目和移动文件;但我在 CMake 完成工作后编译了一个新副本,所以这些都不适用。
我在 CMake 邮件列表中找到了this thread,但它只报告构建库成功,然后逐渐消失。
【问题讨论】: