Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 在Mac上为iOS编译ARM_Iphone_Macos_Assembly_Arm_Jailbreak - Fatal编程技术网

Iphone 在Mac上为iOS编译ARM

Iphone 在Mac上为iOS编译ARM,iphone,macos,assembly,arm,jailbreak,Iphone,Macos,Assembly,Arm,Jailbreak,这有点类似于 特别是Simon Urbanek的回复,谢谢 我基本上想知道如何让这个asm文件在越狱的iPhone上工作。目前,我正在交叉编译并试图将该对象放在iPhone上运行,但没有成功,因为它显然不是针对iPhone操作系统的,它只是没有Mach-O头的ARM代码。你知道怎么让它工作吗-isysroot可能是答案,但我提供了SDK文件作为其输入,没有得到mach-o头 此外,我还想知道是否有一种方法可以在iphone上编译ASM代码而不使用内联gcc 无论如何,以下是当前的工作流程: [在

这有点类似于

特别是Simon Urbanek的回复,谢谢

我基本上想知道如何让这个asm文件在越狱的iPhone上工作。目前,我正在交叉编译并试图将该对象放在iPhone上运行,但没有成功,因为它显然不是针对iPhone操作系统的,它只是没有Mach-O头的ARM代码。你知道怎么让它工作吗-isysroot可能是答案,但我提供了SDK文件作为其输入,没有得到mach-o头

此外,我还想知道是否有一种方法可以在iphone上编译ASM代码而不使用内联gcc

无论如何,以下是当前的工作流程:

[在Mac上] [在iPhone上]
仅编译代码是不够的,您还必须将其链接以从目标代码生成可执行文件:

$/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/llvm-gcc-4.2/bin/llvm-gcc-4.2 -arch armv6 foo.o -o foo
$./foo
如果省略了其中的C/C++部分,并从组装步骤开始,则可以使用此文档来理解:

编译代码是不够的,您还必须将其链接以从目标代码生成可执行文件:

$/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/llvm-gcc-4.2/bin/llvm-gcc-4.2 -arch armv6 foo.o -o foo
$./foo
如果省略了其中的C/C++部分,并从组装步骤开始,则可以使用此文档来理解:

正确,是的,我忘记了那一步,但此时它仍然是一个格式错误的mach-o文件,因为没有头。代码如下所示:uu text:00000000;段类型:纯代码\文本:00000000区域\文本,代码,读写,对齐=0 \文本:00000000代码32 \文本:00000000 MOV R0,R1 \文本:00000000__文本结束\uuuuu文本:00000000\uuuuuu文本:00000000结束,如果您链接它,那么它应该是正确的。。。您是否只是尝试运行它,而没有尝试怀疑地找出文件的确切二进制表示形式?在这里,我们还可以了解需要什么以及何时需要一个头:正确,是的,我忘记了那个步骤,但在这一点上,它仍然是一个格式错误的mach-o文件,因为没有头。代码如下所示:uu text:00000000;段类型:纯代码\文本:00000000区域\文本,代码,读写,对齐=0 \文本:00000000代码32 \文本:00000000 MOV R0,R1 \文本:00000000__文本结束\uuuuu文本:00000000\uuuuuu文本:00000000结束,如果您链接它,那么它应该是正确的。。。您是否只是尝试运行它,而没有尝试怀疑地找出文件的确切二进制表示形式?还可以在此处查看需要标题的内容和时间:
$/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/llvm-gcc-4.2/bin/llvm-gcc-4.2 -arch armv6 foo.o -o foo
$./foo