這與我的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