Kann statische Lib nicht mit DLL linken



  • Das Problem wurde bestimmt schon tausend mal geschildert und ich habe auch schon einige Beiträge gelesen, finde aber keine Lösung.

    Ich habe eine Library (libsmtp) die bisher als DLL kompiliert wurde und mit einer anderen DLL gelinkt wird. Funktioniert gut.

    Nun würde ich libsmtp aber gerne statisch linken, also habe ich in VS2005 das Projekt als static lib konfiguriert und auch kompiliert.

    Wenn ich nun diese Lib mit meiner DLL linken will, bekomme ich "unresolved symbols".
    Irgendwie mag er die Lib nicht linken.

    Muss ich noch irgendwelche anderen Dinge beachten?

    Also im Moment folgende Situation:
    Project A: libsmtp (static)
    Project B: meine DLL (dynamisch)

    A soll nun in B gelinkt werden.
    Oder ist es eventuell einfacher, einfach den kompletten Sourcecode von libsmtp in meine DLL zu ziehen und dann zu kompilieren?


  • Mod

    Hast Du in der Solution gesagt, dass die DLL abhängig ist von der LIB?



  • Hmm wo geht denn das?
    Also unter "Projektabhängigkeiten" kann ich es nicht wählen, da das Projekt (libsmtp) in einer anderen Solution ist.
    Ich könnte natürlich das Projekt auch in diese Solution linken.

    Unter den Linkereinstellungen ist die libsmtp.lib eingetragen.



  • Habe das Projekt jetzt mal der Solution hinzugefügt, wo die DLL gebaut wird. Bringt aber auch nichts. Immer noch "unresolved symbols".


  • Mod

    Wie sehen die Projektabhängigkeiten aus?
    Was steht in den Lnker Optionen?



  • Hi,

    ich habe mittlerweile den Installer angepasst, so dass die libsmtp.DLL einfach in das Systemverzeichnis kopiert wird.
    Hatte leider keine Zeit mehr bekommen, mich weiter um dieses Problem zu kümmern, diese Lösung reicht im Moment völlig aus.

    Trotzdem danke für deine Hilfe!


Anmelden zum Antworten