.DLLs werden erzeugt, aber .LIBs werden gefordert



  • Hi.
    Ich habe hier auf der Arbeit ein Projekt, welchesmit VC++6.0 geschrieben wurde und von mir jetzt so umgebaut werden soll dass es mit VC++ 2010 ausgeführt werden kann.
    Das Projekt besteht aus 20 Teilprojekten wovon 19 zu einer .DLL erstellt werden sollen. Diese sind natürlich untereinander auch gut verstrickt.
    Das Problem ist jetzt nur dass ich andauernd Fehlermeldungen bekomme weil irgendein Teilprojekt wieder irgendeine .LIB nicht finden kann.
    Ein Vergleich mit dem Projekt in VC++ 6.0 geladen ergab dass es da extra ein Feld "keine Lib erzeugen" gab - das deutet natürlich darauf hin dass da eine .LIB UND eine .DLL erzeugt wurden, kann das sein?

    Kann mir jetzt irgendwer 'nen Tip geben wie ich aus der Misere raus komme? Ich möchte natürlich am liebsten alles wie bisher lassen, also so dass .DLLs erzeugt werden.

    Danke.



  • Schau dir mal an was eine Import Lib ist 😉



  • Okay, also wenn ich eine .DLL erzeuge wird direkt auch eine entsprechende .LIB gebildet (jedenfalls sollte es so sein) über die das Programm dann mit der .DLL verbunden wird. So habe ich das jetzt verstanden. Aber warum scheint das dann bei mir nicht zu klappen? Siehe Fehlermeldungen wie z.B.:
    LINK : fatal error LNK1104: Datei "E:\waudev\nbk\debug\nbk.lib" kann nicht geöffnet werden.



  • Werden die libs denn erstellt?



  • Anscheinend nicht, nein, deswegen ja meine Frage dazu. 😃



  • Ja dann sorg dafür dass sie gebaut werden, was für eine Antwort erwartest du denn!?



  • Ja wenn ich wüsste wie das geht würde ich doch nicht fragen. *lach*
    Aber jetzt stelle ich gerade fest dass die entsprechenden .DLLs wohl doch nicht erzeigt werden - also da wo der Fehler auftritt. Naja, wenigstens habe ich jetzt schonmal verstanden dass .DLLs und .LIBs zusammen erstellt werden, das bringt mich etwas weiter - jetzt muss ich nur rausfinden wieso er beides manchmal nicht erstellt. 😞



  • Jetzt wird es noch etwas konfuser. Nachdem ein beliebiges Unterprojekt nicht erzeugt werden konnte weil es von anderen Unterprojekten abhängig ist deren .DLLs und .LIBs nicht vorhanden waren habe ich eben diese Unterprojekte erst erstellt. Nun sind deren .DLLs und .LIBs vorhanden, aber das zuerst ausgeführte Unterprogramm meckert noch immer dass es diese Dateien nicht öffnen kann... 🙄



  • Liegen diese Dateien denn in einem Pfad wo das Projekt auch danach sucht?



  • Er gibt zumindest in der Fehlermeldung genau die Pfade als "kann nicht geöffnet werden" aus wo die Dateien liegen, also ja.
    Einige Dateien findet er ja auch, andere nicht - das ganze scheint auch kein eindeutiges System zu haben - also welche er findet und welche nicht. 😞



  • Überprüf mal die Projektabhängigkeiten (Rechtsklick auf die Projektmappe -> Projektabhängigkeiten). Für mich klingt das so, als würden die Projekte nicht mehr in der richtigen Reihenfolge gebaut, was nach einem Update gerade von VC6 durchaus möglich ist. Ich habe den Effekt mit wxWidgets erlebt (allerdings keine tiefere Ursachenforschung betrieben).



  • Es sieht für mich jetzt so aus, dass wenn ich die einzelnen Projekte compiliere eben alles klappt. Wenn ich das Gesamtprojekt kompiliere kommt es scheinbar tatsächlich zu falschen Reihenfolgen. Z.B. meldet der Compiler dass eines der Unterprojekte eine .LIB nicht öffnen kann, von welcher er wenige Zeilen später sagt dass sie erstellt wurde...jetzt muss ich nur mal schauen wo ich da die Reihenfolge ändern kann (wo die angezeigt wirst hast Du mir ja schon gesagt).



  • na genau hier:

    Rechtsklick auf die Projektmappe -> Projektabhängigkeiten

    Du musst natürlich wissen, welches Projekt welche libs verwendet.


Anmelden zum Antworten