Компиляция файла ARM .s на Mac - PullRequest
       21

Компиляция файла ARM .s на Mac

4 голосов
/ 05 февраля 2012

У меня Mac OS X, и у меня возникают проблемы при компиляции файла сборки .s ARM. мой файл .s такой:

mov r0, r1

просто чтобы посмотреть, работает ли это. но, когда я делаю arm-elf-as my.s я получаю a.out файл. я делаю chmod +x a.out а также ./a.out но это говорит cannot execute binary file

это меня смущает, потому что он должен быть в состоянии выполнить, если я скомпилировал его с помощью arm-elf-as. Как мне скомпилировать этот файл .s?

1 Ответ

2 голосов
/ 06 февраля 2012

Вы правильно собираете его, просто не можете запустить его на Mac, так как на Mac нет процессоров ARM. Если вы устанавливаете Xcode с поддержкой iOS, вы можете скомпилировать код ARM:

# the file
$ cat foo.s
    mov r0, r1

# compile with llvm-gcc
$ /Developer/Platforms/iPhoneOS.platform/usr/bin/llvm-gcc-4.2 -arch armv6 -c foo.s

# resulting file is ARM object file
$ file foo.o
foo.o: Mach-O object arm

# and you can disassemble it
$ otool -v -t foo.o
foo.o:
(__TEXT,__text) section
00000000    e1a00001    mov r0, r1

Вы не сможете ничего запустить, потому что для этого вам понадобится система времени выполнения и процессор ARM. Вы можете использовать -isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.2.sdk или аналогичный для компиляции для iPhoneOS, например.

...