相关疑难解决方法(0)

如何设置CMake为iPhone构建应用程序

这与我之前的问题密切相关,该问题是关于使用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})
Run Code Online (Sandbox Code Playgroud)

几点说明:

  • 我明确给出了-framework链接选项,因为它find_library不适用于所有框架(它找到了大部分框架,但没有找到OpenGLES).我不明白为什么,因为他们都在同一个文件夹中${SDK}/System/Library/Frameworks.这让我相信我做错了什么,但我不知道是什么.
  • 我添加MACOSX_BUNDLEadd_executable命令中,以便生成的产品类型com.apple.product-type.application代替com.apple.product-type.tool,而iPhone上显然不存在.

在任何情况下,应用程序编译和链接正确,但当我在模拟器中运行它时,我得到了可怕的

Failed to launch simulated application: Unknown error.
Run Code Online (Sandbox Code Playgroud)

google和stackoverflow上有很多报告此问题的实例,但所有解决方案都涉及清理或创建新项目和移动文件; 但是我在CMake完成它的工作后正在编译一份新的副本,所以这些都不适用.

我在CMake邮件列表上找到了这个帖子,但它只报告了构建库的成功,然后逐渐消失.

iphone xcode cmake

25
推荐指数
2
解决办法
2万
查看次数

标签 统计

cmake ×1

iphone ×1

xcode ×1