Visual STudio, neue libraries
-
Hallo,
was muss ich alles in den Eigenschaften ändern damit der Linker die Library findet ? Unterschied zwischen .dll und .lib ???
-
Kommt ganz darauf an, wie die Librarys aussehen. Aber wenn du sowol .lib-, als auch .dll-Dateien hast, gehe ich mal davon aus, dass deine Librarys folgendermassen eingebunden werden:
Die .lib-Dateien sind jediglich sogenannte Import-Libs. D.h. sie enthalten, im Gegebsatz zu normalen statischen Libs keinen Code, sondern verweisen den Linker nur darauf, dass entsprechende Funktionen in einer xy.dll vorhanden sind. Der Linker extrahiert dann die Funktionen aus der Lib, die er braucht, und schreibt sie in den Import-Header des Exefiles. Vielleicht nicht ganz exakt aber so ungefaehr laeuft es. Um die entsprechende Lib dann unter VS einzubinden gehe wie folgt vor (VS2012 mit aelteren duerfte es genauso gehen):
- Oeffne dein Projekt
- Klicke im Menue auf "Projekt" -> "xx Eigenschaften"
- Navigiere zu "Konfigurationseigenschaften" -> "VC++-Verzeichnisse"
- Bei "Bibliotheks-Verzeichnisse" fuegst du den Pfad zu deinen .lib-Dateien hinzu. Sollte deine Library auch Header mitliefern kannst du unter "Include-Verzeichnisse" deren Ordner gleich mit angeben und musst so keine ewig langen Pfade hinter
#includepflanzen. - Unter "Konfigurationseigenschaften" -> "Linker" -> "Eingabe" gibst du bei "Zusaetzliche Abhaengigkeiten" die Namen deiner .lib-Files an.
- Wiederhole diese Schritte fuer alle Build-Konfigurationen, sprich i.d.R. Debug und Release. Du kannst zwar auch alle gleichzeitig aendern, aber wenn du z.B. verschiedene lib-xx.lib fuer Release und lib-xx-d.lib fuer Debug hast isses so einfacher
Das waren die Schritte um die .libs zu deinem Projekt hinzuzufuegen. Wenn deine Library noch .dlls mitliefert muessen die i.d.R. zur Ausfuehrung im Suchpfad deines Programmes liegen, sprich meistens das Verzeichnis, in dem deine Exe liegt.
:xmas1:
-
Dieser Thread wurde von Moderator/in rüdiger aus dem Forum Rund um die Programmierung 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.