2012-04-25 1 views
2

Это немного похоже на Compiling ARM .s file on Macкомпилирование ARM на Mac для прошивки

Особенно в ответ дается Саймон Urbanek, спасибо за это!

Я в основном задаюсь вопросом, как заставить этот файл asm работать на взломанном iPhone. В настоящее время я перекрестно компилирую и пытаюсь разместить объект на iPhone и запускать его без успеха, потому что он не предназначен для iPhoneOS, очевидно, его просто ARM-код без заголовка Mach-O. Любая идея, как это сделать? -isysroot может быть ответом, но я предоставил SDK-файл в качестве его ввода, и я не получаю заголовок mach-o.

Кроме того, я также хотел бы узнать, есть ли способ скомпилировать код ASM на самом iphone без использования встроенного gcc.

В любом случае, вот текущий рабочий процесс:

[На Mac]

$ 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 

ответ

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

+0

Правильно, да, я забыл, что шаг, но в данный момент это было бы по-прежнему является некорректным файлом mach-o, так как нет заголовка. код просто выглядит следующим образом: __text: 00000000; Тип сегмента: чистый код __text: 00000000 ОБЛАСТЬ __text, CODE, READWRITE, ALIGN = 0 __text: 00000000 CODE32 __text: 00000000 MOV R0, R1 __text: 00000000; __text заканчивается __text: 00000000 __text: 00000000 END – iOSThing

+0

Ну, если вы его связываете, тогда это должно быть правильно ... Вы просто выполнили его TRIED, не пытаясь скептически определить точное двоичное представление файла? Также посмотрите здесь, для чего и когда нужен заголовок: http://www.muppetlabs.com/~breadbox/software/tiny/teensy.html –

+0

Да, у меня есть отличные ссылки кстати, читая их сейчас – iOSThing