相关疑难解决方法(0)

有没有办法在Xcode 4中编译ARM而不是Thumb?

如果有许多浮点运算正在进行,Apple建议编译ARM而不是拇指.我的整个应用程序几乎是一个大的浮点操作.

以下是他们在iOS应用开发工作流程指南中所说的内容:

iOS设备支持两个指令集,ARM和Thumb.默认情况下,Xcode使用Thumb指令,因为使用Thumb通常会将代码大小相对于ARM减少约35%.如果使用ARM指令而不是Thumb,那么具有广泛浮点代码的应用程序可能会表现得更好.您可以为应用程序关闭Thumb,以便通过将Compile for Thumb build设置为No来编译ARM.

但是,我在构建设置中找不到任何"Compile for Thumb"设置.他们重命名了吗?或者Xcode 4现在不可用?

compiler-construction xcode arm ios xcode4

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

使用LLVM和任何优化构建会导致应用程序在启动时崩溃

当我尝试在XCode 4.0.1中使用LLVM 2.0构建我的应用程序以及任何不是无(除了-O0之外的任何级别或优化)时,应用程序在我在设备上启动后崩溃(模拟器没问题).我似乎无法调试崩溃,因为当我构建xcode并通过GDB/LLDB附加时它不会发生.此外,崩溃只发生在我使用xcodebuild在命令行上构建应用程序时; 即使使用完全相同的项目设置,通过XCode IDE构建也不会崩溃.我在崩溃日志中看不到任何有用的信息,因为崩溃发生在我的代码之外:

Exception Type:  EXC_BAD_ACCESS (SIGBUS)
Exception Codes: KERN_PROTECTION_FAILURE at 0x00b53400
Crashed Thread:  0

Thread 0 name:  Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0   ???                             0x00b53400 0 + 11875328
Run Code Online (Sandbox Code Playgroud)

它不会正确地符号化,因为它不知道崩溃发生在哪个库中.

设备控制台显示我们的应用程序在启动时创建的一些NSLog语句,然后加载和绘制第一个屏幕的UI,之后发生崩溃.没有优化的构建,或使用任何优化级别的GCC 4.2构建都可以正常工作.

这里可能会发生什么,我该如何调试呢?在构建和部署应用程序与xcodebuild命令行界面时,XCode IDE可以做些什么?

iphone gcc llvm xcodebuild xcode4

10
推荐指数
2
解决办法
4212
查看次数

标签 统计

xcode4 ×2

arm ×1

compiler-construction ×1

gcc ×1

ios ×1

iphone ×1

llvm ×1

xcode ×1

xcodebuild ×1