.obj Dateien linken



  • ich versuch seit stunden ein kleines testprogramm aus dem asm buch zu erstellen, aber es treten wie immer diverse probleme auf. die asm datei konnte ich richtig mit nasm als .obj datei erstellen, dann hab ich noch ein bisschen c code, den ich compilen soll um dann die beiden .obj dateien zu linken.
    jetzt hab ich aber keine ahnung wie ich das machen soll. im buch wird das mit diesem gcc compiler gemacht, hab ich gesaugt, geht aber scheinbar nicht auf windows 7 64bit. irgendwo hat dann irgendwer zu diesem minGW verwiesen, hab ich gesaugt. sind halt n haufen dateien drinne und ich weis nicht was ich damit anfangen soll. anleitung oder so war nicht dabei.
    jedenfalls hab ich dann einfach mit visual studio den c code compiliert. im debug ordner ist die obj datei drin. aber ich finde einfach keine möglichkeit das zu linken.
    link.exe im visual studio verzeichnis geht nicht weil angeblich irgendeine dll fehlt...
    jemand ne idee?



  • Und....
    was genau hat das jetzt mit C**++** zu tun?

    GCC gibt es so nur für Linux, MinGW stellt eine Windows-Version dar. Um mit MinGW etwas anfangen zu können, hol dir am besten CodeBlocks o.ä. (bei CodeBlocks kann MinGW auch mitgeliefert werden, dann braucht da nix mehr gemacht zu werden).



  • dass in c++ vermutlich dateien gelinkt werden...wusste nicht wo das sonst rein soll. welches wissen fehlt mir denn? ein buch arbeite ich schon seit langer zeit durch, c++ primer.



  • dass in c++ vermutlich dateien gelinkt werden...wusste nicht wo das sonst rein soll.

    Na, bei C werden genauso Dateien gelinkt. Und du hast ja offensichtlich Schwierigkeiten mit C.

    Nikolai schrieb:

    ein buch arbeite ich schon seit langer zeit durch, c++ primer.

    Oh... jetzt verstehe ich!
    Ja, der C++-Primer ist die beste Wahl 👍



  • ist das ironisch gemeint? in diesem forum haben alle irgendein problem mit allen büchern wie ich das bis jetzt mitbekommen habe. und mit c++ hab ich keine größeren probleme wenn ich in visual studio alles mache, hab aber nie gelernt es ohne benutzerfreundliche ide zu machen. das problem ist dass gcc.exe nicht kompatibel ist mit meiner windows version und dass link.exe nicht läuft weil mspdb100.dll fehlt.



  • Der Primer wird hier allgemein empfohlen. Sone hat sich sicher nur missverständlich ausgedrückt. Damit meine ich, er meinte einfach, was er sagte. 😉



  • Nikolai schrieb:

    ist das ironisch gemeint?

    Wahrscheinlich nicht.

    in diesem forum haben alle irgendein problem mit allen büchern wie ich das bis jetzt mitbekommen habe.

    Hast du falsch mitbekommen. Der Primer ist ein recht gutes Buch und wird hier auch immer wieder empfohlen. Aber viele andere Bücher sind oft das Papier nicht wert, auf dem sie gedruckt wurden.

    das problem ist dass gcc.exe nicht kompatibel ist mit meiner windows version und dass link.exe nicht läuft weil mspdb100.dll fehlt.

    Dass der GCC nicht zu deiner Windows-Version kompatibel ist bedeutet dann wohl, dass du dir die falsche GCC-Version "gesaugt" hast. Dass die link.exe nicht läuft mit der Angabe, dass eine DLL fehlt, liegt höchstwahrscheinlich daran, dass die nötigen Umgebungsvariablen nicht gesetzt sind, die sagen, wo die DLL zu suchen ist. Hast du es mal mit der "Visual Studio Eingabeaufforderung" versucht?
    Nichtsdestotrotz wirst du vermutlich nicht glücklich werden bei dem Versuch, gcc Compilate mit dem VS Linker zu verlinken. Such dir eins von beidem raus. Vielleicht gibts ja im Netz eine Anleitung, wie man den Assembler im VS-Projekt mit einbaut und dann läuft wieder alles automatisch.

    Nikolai schrieb:

    dann hab ich noch ein bisschen c code, den ich compilen soll um dann die beiden .obj dateien zu linken.
    jetzt hab ich aber keine ahnung wie ich das machen soll. im buch wird das mit diesem gcc compiler gemacht, hab ich gesaugt, geht aber scheinbar nicht auf windows 7 64bit. irgendwo hat dann irgendwer zu diesem minGW verwiesen, hab ich gesaugt. sind halt n haufen dateien drinne und ich weis nicht was ich damit anfangen soll. anleitung oder so war nicht dabei.

    Dann such doch im Netz nach Anleitungen. Ist für MinGW nicht ganz einfach zu finden, aber doch vorhanden.



  • mit der eingabeaufforderung scheint die link.exe benutzbar zu sein, aber wenn ich link datei1.obj datei2.obj schreibe dann steht da immer dass an 0x25D nicht gelesen werden kann in der obj datei die mit nasm erstellt wurde. sieht fast so als würde daraus nichts mehr werden.



  • Nikolai schrieb:

    dann steht da immer dass an 0x25D nicht gelesen werden kann in der obj datei die mit nasm erstellt wurde.

    Das liegt daran, dass .obj-Dateien von verschiedenen Compilern/Assemblern nicht kompatibel sind. Google mal nach "Visual Studio Assembler", dann findest du evtl. was, wie du den Assembler-Code so in .obj's verbastelst, dass der VS-Linker damit was anfangen kann.



  • Dieser Thread wurde von Moderator/in pumuckl aus dem Forum C++ (auch C++0x und C++11) in das Forum Compiler- und IDE-Forum verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • also ich hab jetzt mit der dreckigen eingabeaufforderung die .c datei compilen können, obwohl ich keine ahnung hab wo die verdammte .obj datei hingespeichert wird und auch auf msndn oder sonstwo gibt es keine hinweise. mit nasm konnte ich dann ne win32 obj datei erstellen die auch kompatibel ist. die beiden .obj datei und noch ne dritte für die io funktionen hab ich gelinkt, es scheinen keine fehler aufzutreten. aber wo zur hölle ist die .exe? genau wie der speicherort der .obj dateien ist mir das nicht bekannt.

    http://www.imagebanana.com/view/7oey74s8/_.jpg


Log in to reply