这与我的previous question密切相关,这是关于使用CMake在iPhone上构建静态库的。我得到这个工作设置CMAKE_OSX_SYSROOT
。如何设置CMake为iPhone构建应用程序
但是,这不适用于构建应用程序。我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.
有很多关于谷歌和计算器这个问题的报告实例,但所有解决方案都涉及清理或创建新项目和移动文件;但是在CMake完成它的工作之后,我正在编译一份新的副本,所以这些都不适用。
我在CMake邮件列表上发现了this thread,但它只报告构建库的成功,然后逐出。
我发现你的答案非常有帮助 - 我真的迷失在CMake和Xcode中。我尝试使用CMakeLists文件的稍微修改版本。但是,我遇到了一些奇怪的问题。你可以看看我的问题吗? http://stackoverflow.com/questions/5473448/cmake-and-xcode-cannot-find-interface-declaration-for-nsobject在此先感谢:) – Shade 2011-03-29 14:11:39
现在有另一种资源的方式,请参阅此处:http:///cmake.org/gitweb?p=cmake.git;a=blob;f=Tests/iOSNavApp/CMakeLists.txt但是,这将删除目录层次结构,所以重复的文件名是一个问题... – 2013-06-27 14:58:26