-2
Ich möchte die Etikettenadresse der Baugruppe in C-Sprache erhalten. Hier ist das Beispielerhalten Etikett Adresse der Baugruppe mit C
ich eine start.S Datei haben:
.fun:
// do something
Und ich habe eine main.c Datei:
volatile unsigned int * p = (unsigned int *) 0x1000;
Ich möchte das Label-Adresse 'Spaß' schreiben So in den Speicher von 0x1000, schreibe ich
*p = fun;
Aber es kann nicht mit Fehlern info erstellt werden:
'fun' undeclared (first use in this function)
Vielen Dank für Ihre Hilfe.
Rename '.fun' zu' fun' und verwenden '.globl fun' in der Baugruppendatei auf das Symbol zu exportieren? Wenn das Ziel Windows ist und Sie ELF nicht verwenden, müssen Sie möglicherweise ein "_" (Unterstrich) dem Label "fun" in der Datei ".S" voranstellen. –
Natürlich müsste man in _C_ auch ein 'extern' für' fun' deklarieren. –
@MichaelPetch das '_' muss vorangestellt werden, wenn das Ziel 32 Bit ist. 64-Bit-Name Mangling verwendet nicht mindestens _ _ _ 'unter Windows. –