Lowlevel
Lowlevel => Lowlevel-Coding => Thema gestartet von: scales of justice am 08. July 2006, 19:42
-
ich will mit ld nasm code linken, es werden von ld aber nur 2 Ausgabeformate von nasm unterstützt:
win32 Microsoft Win32 (i386) object files
rdf Relocatable Dynamic Object File Format v2.0
bei beiden bekom ich aber folgende Meldung von ld:
ld: warning: cannot find entry symbol start; defaulting to 0000000000010000
wie leg ich denn mit nasm einen einsprungpunkt fest?
ich hab einfach mal ein label "start" global gemacht, tuts aber nicht
bei windows hab ich immer elf oder obj genommen (weis nicht mehr) da wollte er keinen einsprungpunkt,
aber das format nimmt der linux ld nicht
-
Öhm, wenn du unter Linux einen ld hast, der kein ELF nimmt/produziert, dann hast du eine wirklich seltsame Installation - ELF ist ja immerhin das native Format von Linux...
-
ah doch du hast Recht er nimmt auch elf, dachte das hätt ich ausprobiert
er will aber trotzdem nen einsrpungpunkt, denn muss man doch irgendwie mit nasm festlgen können
-
Ein globales Label _start sollte schon richtig sein.
-
wenn mans richtig schreibt jedenfalls -.-
noch ne Frage, mach jetzt nicht extra nen neuen thread auf:
ld meckert immer, dass er memcpy nicht finden kann,
in welcher Bibliothek von gcc isn das drin?
oder muss ich das für mein OS selbst schreiben?
denk aber eher, das braucht keine OS-spezifischen funktionen
-
Im Zweifelsfall selber schreiben - schon allein, um sich nicht zur GPL zu zwingen. Sind ja nur fünf Zeilen oder so.
Nachtrag: Wieso kommst du denn nicht ins IRC, wenn du so viele Fragen auf einmal hast? Brauchst du jetzt aber zumindest bis zur Halbzeit auch nicht mehr. ;)
-
das Problem ist ja, das memcpy muss ja genau das gleiche machen, und die gleichen Parameter erwarten, wie das memcpy von gcc,
und ich weis eben nicht welche Parameter er da übergibt
IRC würd ich gern, aber ich kapier auf Linux noch nicht wirklich wie ich da rein kom,
welcher IRC-Client ist denn für Linux gut?
-
Falls du das entsprechende Paket installiert hast: man memcpy (ja, auch für C-Funktionen gibt es man-Pages). Ansonsten lohnt sich nachinstallieren auf jeden Fall - für Debian wäre das das Paket manpages-dev.
Die Definition ist übrigens: void *memcpy(void *dest, const void *src, size_t n);
Wegen IRC-Client: Ich benutze im Moment Konversation (ja, ich bin anspruchslos ;)), habe aber auch schon xchat benutzt. KVIrc ist ansonsten recht beliebt und sicher auch umfangreicher.
-
Als Client würde ich irssi, bzw lostirc ( wenn x und gtk vorhanden ) empfehlen.