当我尝试使用默认编译器设置LLVM GCC 4.2在设备上测试我的应用程序时,出现了“内部编译器错误:总线错误”,但是它可以正常工作在GCC 4.2和LLVM编译器2.0。
这个错误的可能原因是什么?是否可以使用GCC 4.2来分发你的应用程序?
当我尝试使用默认编译器设置LLVM GCC 4.2在设备上测试我的应用程序时,出现了“内部编译器错误:总线错误”,但是它可以正常工作在GCC 4.2和LLVM编译器2.0。
这个错误的可能原因是什么?是否可以使用GCC 4.2来分发你的应用程序?
"总线错误"通常意味着您的应用程序尝试执行未对齐的内存访问,这在默认情况下是不允许的。
您可以尝试告诉gcc
仅生成对齐的内存访问,或者在操作系统内核中设置未对齐的内存访问处理方式(不确定iOS是否支持):
echo 2 > /proc/cpu/alignment
/proc
目录树。并且,在iOS上,默认编译器不再是gcc
,而是llvm
。 - Cyrille