2

これは、 Mac での ARM .s ファイルのコンパイルに少し似ています。

特に、Simon Urbanek さんからの返信、ありがとうございます。

基本的に、脱獄したiPhoneでこのasmファイルを機能させる方法を考えています。現在、私はクロスコンパイルしてオブジェクトを iPhone に配置し、実行しようとしていますが、これは明らかに iPhoneOS 向けではなく、Mach-O ヘッダーのない単なる ARM コードであるため、成功しませんでした。これを機能させる方法はありますか?-isysroot が答えかもしれませんが、SDK ファイルを入力として提供しましたが、mach-o ヘッダーを取得できません。

また、インライン gcc を使用せずに iphone 自体で ASM コードをコンパイルする方法があるかどうかも知りたいです。

とにかく、現在のワークフローは次のとおりです。

【マックの場合】

$ cat foo.s
mov r0, r1

$/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/llvm-gcc-4.2/bin/llvm-gcc-4.2 -arch armv6 -c foo.s

$ file foo.o
foo.o: Mach-O object arm

$ otool -v -t foo.o
foo.o:
(__TEXT,__text) section
00000000    e1a00001    mov r0, r1

【iPhoneの場合】

$ file foo.o
foo.o: Mach-O object arm

$ otool -v -t foo.ofoo.o:
(__TEXT,__text) section
00000000    e1a00001    mov r0, r1
4

1 に答える 1

0

コードをコンパイルするだけでは不十分です。リンクして、オブジェクト コードから実行可能ファイルを生成する必要もあります。

$/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++ の部分を省略して、アセンブリのステップから直接始める場合は、このドキュメントを使用して理解することができます: http://markuskimius.wikidot.com/programming:explain:compiling

于 2012-04-25T20:39:08.590 に答える