Ich schreibe Assemblersprache, Programm wie folgt aus:Wie spezifiziert man Befehlszeilenargumente und Licer der Linux-Assembly, die in SCONs verwendet werden?
.data
.equ b,3
.text
.globl _start
_start:
movl $2,%ebx
movl $b,%ecx
movl $1,%eax
int $0x80
ich es unter Ubuntu 64bit-Version kompilieren. Ich möchte eine 32-Bit-Version, so unter der Shell kann ich tun:
$ as my.s -32
$ ld a.out -o my
OK, kein Problem. Ich wünsche scons verwenden, um diesen Prozess zu verwalten, so habe ich SConstruct:
Program('my.s')
Dies kompiliert erste ‚als my.s -o my.o‘ verwenden und ‚gcc my.o -o mein‘, und Bericht und Fehler der Neudefinition von "_start".
Mein Problem ist:
Wie kann ich '-32' Option übergeben, um sicherzustellen, dass ich 32-Bit-Version Objektdatei kompilieren aus?
Wie kann ich den Linker 'ld', aber nicht 'gcc' angeben, um sicherzustellen, dass ich '_start' als Einstiegspunkt in meine Assembly-Quelldatei verwenden kann?