Hinweis: Das Forum wird geschlossen! Neue Registrierungen sind nicht mehr möglich!

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
C und Assembler

 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Programmieren - C
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
nixkönner
Gast





BeitragVerfasst am: 06. März 2003 23:28   Titel: C und Assembler

Guten Abend
Ich habe ein Problem bei der KOmbination C/ASM. Wenn ich in den C Source eine eigene ASM Funktion einbaue, wird diese Funktion korrekt "verarbeitet", jedoch nicht die C-Funktionen wie z.B. strlen(), printf(),..
Welche Datei ausser den .o aus dem C uind ASM Source muss ich noch dazulinken, dass auch diese Funktionen funktionieren? :)

MfG
Nixkönner
 

bazik
Gast





BeitragVerfasst am: 07. März 2003 13:14   Titel: Re: C und Assembler

Zeig mal bitte einen Beispiel Code, weil ich dein Problem nicht so ganz verstehe.
 

Nixkönner
Gast





BeitragVerfasst am: 07. März 2003 19:36   Titel: Re: C und Assembler

Ich habe eine C-Source Datei, welche eine Funktion aus einer ASM Source Datei nützt. Beide Dateien wurden entsprechend compiliert, wenn ich sie mit ld linken will erhalte ich
Test.o(.text+0x50): undefined reference to `strlen'
und weitere Fehlermeldungen mit printf und exit in dem Stil.
Welche Datei muss ich noch linken damit strlen, printf usw verwendet werden können?
C-Source:
#include <stdio.h>
#include <string.h>
extern myfunc();

int main(int *argc, char *argv[])
{
printf("Willkommen
");
myfunc();
printf("Funktion ausgefuehrt
");
c_func();
printf("C-FUnktion ausgefuehrt
");
exit();
}

ASM-Source:
global _myfunc
_myfunc:
push ebp
mov ebp,esp
sub esp,0x40
mov ebx,[ebp+8]

mov esp,ebp
pop ebp
ret


mfg
nixkönner

P.S. Der Source oben ist nur ein Ausschnitt, das strlen kommt weiter unten vor.
 

bazik
Gast





BeitragVerfasst am: 09. März 2003 16:46   Titel: Re: C und Assembler

Und wie kompilierst du beide Dateien? Smile
Lass dir nicht alles aus der Nase ziehen ;)

Normalerweise erzeugst du mit dem Assembler deiner Wahl ein elf object und linkst es einfach mit "gcc blah.o -o blah".
Zumindest funzt es bei mir so Wink
 

Beiträge vom vorherigen Thema anzeigen:   
     Pro-Linux Foren-Übersicht -> Programmieren - C Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehen Sie zu:  

Powered by phpBB © phpBB Group
pro_linux Theme © 2004 by Mandaxy