Einsteigerhilfe: Einbinden von Bibliotheken

Hier können Artikel, Tutorials, Bücherrezensionen, Dokumente aller Art, Texturen, Sprites, Sounds, Musik und Modelle zur Verfügung gestellt bzw. verlinkt werden.
Forumsregeln
Möglichst sinnvolle Präfixe oder die Themensymbole nutzen.
Antworten
Gelöschter Benutzer
Beiträge: 92
Registriert: 26.02.2009, 22:09

Einsteigerhilfe: Einbinden von Bibliotheken

Beitrag von Gelöschter Benutzer »

Jeder Einsteiger kennt das: Eine wunderbare Bibliothek (DirectX, Assimp, ...) wird im Internet gefunden und es heißt sofort "das will ich haben.". Da man sich mit der IDE zu dieser Zeit nicht ganz 100% auskennt, verzweifeln viele dann auch an den Bibliotheken und deren Einbindung in den Projekten. Dabei ist das ganz einfach und soll am Beispiel Visual Studio verdeutlicht werden:

1. Man startet ganz einfach Visual Studio und gelangen in das Hauptmenü
2. Dann wählt man oben im Menü den Punkt Extras und dann Optionen...

Schon taucht dieses "gewaltige" Fenster auf:
Bibliothekseinbindungsoptionen in Visual Studio
Bibliothekseinbindungsoptionen in Visual Studio
vs_options.png (57.75 KiB) 8478 mal betrachtet
Nicht nur, dass dieses "gewaltige" Fenster viel anzubieten hat, es kann auch genauso gewalttätig mit unseren Einstellungen in Visual Studio umgehen.

Doch hangeln wir uns erstmal von Punkt 1 bis zum Fenster der VC++-Verzeichnisse hindurch. Ggf. mus mann einmal kurz nach oben scrollen, wenn man Visual Studio 2005 benutzt.

Diese Standardpfade legen wir jeweils für verschiedene Bibliotheken fest - aus gutem Grund: Schließlich bieten viele SDKs (Software Development Kit) eine 32Bit- (Win32 / x86) und 64Bit-Bibliothek (x64) an. Entsprechend wählen wir unsere Plattform und wählen nebenstehend erst einmal Includedateien an.

Dann klicken wir auf Punkt 5 und legen mit Klick auf den Button mit drei Punkten den Ordner fest. Diesen Ordner findet man meistens im SDK-Verzeichnis in eventuell folgend existierenden Ordnern:
  • [SDK]/include
  • [SDK]/inc/
  • [SDK]/api/include
  • [SDK]/api/inc
Haben wir dies getan, so wählen wir im Punkt 5 die Bibliotheksdateien - die libraries. Hier ist im wesentlichen nur eines zu beachten: Man wählt die Zielplattform [ZP] je nach Plattofrm. Also x64 für 64Bit oder x86 für 32Bit. Dabei muss ein Unterordner in der SDK zur Zielplattform nicht existieren, was im Zuge (heutzutage) nur 32Bit bedeutet.

Jetzt führen wir also wieder Punkt 6 und 7 für die Bibliotheksdateien und den SDKs aus. Dabei kann es folgende Ordner geben:
  • [SDK]/lib/[ZP]
  • [SDK]/library/[ZP]
  • [SDK]/library/
  • [SDK]/api/lib[ZP]
  • [SDK]/api/library/[ZP]
  • [SDK]/api/library/
Das machen wir für die benötigten Plattformen jeweils und können in diesem Sinne "Ok" drücken. Nebenbei empfiehlt es sich, dass man sich das Consolas Font Package installiert und in Umgebung -> Schriftarten und Farben bei "Nur Text" entsprechend einstellt.

Was jetzt kommt gilt dann für jedes Projekt, indem wir die Bibliotheken benutzen: Wenn wir eine Bibliothek benutzen, müssen wir die Bibliotheksdateien in den Projekteigenschaften festlegen.

Wir öffnen nun also unser Projekt und gehen im Menü unter -> Projekt -> [Projektname]-Eigenschaften.
Die Projekteigenschaften
Die Projekteigenschaften
vs_options2.png (60.8 KiB) 8480 mal betrachtet
Hier kann man im Projekt übrigens noch mehr anstellen (gutes und schlechtes). Wir gehen dazu in den Konfigurationseigenschaften -> Linker -> Eingabe und wählen dort Zusätzliche Abhängigkeiten. Dort tragen wir dann die benötigten *.lib-Dateien ein.

Die LIB-Dateien sind abhängig von der SDK und es wird meistens geschrieben welche LIB-Dateien benötigt werden. Ansonsten einfach in das Verzeichnis gehen und alle LIB-Dateien eintragen ;).

Dann klickt man auf OK und schon sollte es loslegen. Sollte ein Fehler auftreten wie:

Code: Alles auswählen

error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_Direct3DCreate9@4" in Funktion "_main"
So fehlt einfach eine benötigte Bibliothek und muss nachgetragen werden (in dem Fall die d3d9.lib).

So, das war es auch in Visual Studio!

Und denkt daran: Immer brav vollständig wissend die Doku lesen!
roker002
Beiträge: 23
Registriert: 29.03.2009, 23:49

Re: Einsteigerhilfe: Einbinden von Bibliotheken

Beitrag von roker002 »

hmm ich habe jetzt DX SDK installiert. Wie krieg ich dies für meine Projekte zu verwenden? hab mal kurz durchgeschaut und fand kein makro (pfad für die DX SDK).
Wie mach ich das den jetzt?

Danke
Benutzeravatar
Schrompf
Moderator
Beiträge: 4855
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas Ziegenhagen
Wohnort: Dresden
Kontaktdaten:

Re: Einsteigerhilfe: Einbinden von Bibliotheken

Beitrag von Schrompf »

Nach obiger Anleitung. Bei Visual Studio im Menü unter Extras/Optionen und dort links im Baum "Projekte und Projektmappen" -> "VC++-Verzeichnisse". Und dort unter "Include-Dateien" den Includepfad hinzufügen (z.B. "C:\Programme\Microsoft DirectX SDK\include") und unter "Bibliotheksdateien" den Lib-Pfad (z.B. "C:\Programme\...Bla...SDK...\Lib\X86")
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
roker002
Beiträge: 23
Registriert: 29.03.2009, 23:49

Re: Einsteigerhilfe: Einbinden von Bibliotheken

Beitrag von roker002 »

hab schon hinzugefügt aber es zeigen sich gar keine einwirkungen
Benutzeravatar
Schrompf
Moderator
Beiträge: 4855
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas Ziegenhagen
Wohnort: Dresden
Kontaktdaten:

Re: Einsteigerhilfe: Einbinden von Bibliotheken

Beitrag von Schrompf »

Wie lauten denn die exakten Fehlermeldungen?
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
roker002
Beiträge: 23
Registriert: 29.03.2009, 23:49

Re: Einsteigerhilfe: Einbinden von Bibliotheken

Beitrag von roker002 »

wenn ich den d3d10.h include sucht der diesen in falschen pfad obwohl ich den aktuelleren angegeben habe!
der sucht zum bsp da
Fehler 1 fatal error C1083: Datei (Include) kann nicht geöffnet werden: "d3d10sdklayers.h": No such file or directory c:\program files\microsoft sdks\windows\v6.0a\include\d3d10.h 6676 ZFXTutorial2_FirstContact
SDK für DX habe ich aber schon global eingeführt!
Gelöschter Benutzer
Beiträge: 92
Registriert: 26.02.2009, 22:09

Re: Einsteigerhilfe: Einbinden von Bibliotheken

Beitrag von Gelöschter Benutzer »

Hast du dort wirklich die DirectX SDK installiert :shock: ?

Normalerweise installiert man sich die Version in [Laufwerk]:/Program Files (x86)/Microsoft DirectX SDK (March 2009)/ *.* . Von daher verstehe ich nicht, was du in den Standardincludes von VS willst...

Und by the way: Die DirectX SDK wird nicht mit dem Windows SDK mitgeliefert. Dazu musst du wenn schon denn schon die DirectX SDK installieren von:
msdn.microsoft.com/directx/

Hoffe, dass das hilft.

So, jetzt geht es allerdings mal weiter an Daxter an der PSP :ugeek: ...
roker002
Beiträge: 23
Registriert: 29.03.2009, 23:49

Re: Einsteigerhilfe: Einbinden von Bibliotheken

Beitrag von roker002 »

ja klar hab ich es installiert und den pfad unter einstellung des VS mit eingegeben. Komischerweise springt der immer auf den MS SDK Pfad.
Dateianhänge
screen1.jpg
Benutzeravatar
Aramis
Moderator
Beiträge: 1458
Registriert: 25.02.2009, 19:50
Echter Name: Alexander Gessler
Wohnort: 2016
Kontaktdaten:

Re: Einsteigerhilfe: Einbinden von Bibliotheken

Beitrag von Aramis »

Bist du absolut sicher, dass der Pfad wirklich der Installationspfad ist? C:\Program Files (x86)\ existiert nur unter 64 Bit Vista und ist ein Feature von WOW64. Unter einem normalen Vista32 dürfte es eher C:\Program Files\ sein.
Die DirectX SDK wird nicht mit dem Windows SDK mitgeliefert
Die, der oder das, das ist hier die Frage aller Fragen.
Dirk Schulz
Establishment
Beiträge: 130
Registriert: 01.03.2009, 14:21
Alter Benutzername: frittentuete

Re: Einsteigerhilfe: Einbinden von Bibliotheken

Beitrag von Dirk Schulz »

Hi,

irgendwie klingt deine Verzeichnisliste ziemlich komisch. Alle anderen Pfade beziehen sich auf bin-Ordner, zwei von dir auf die Librarys und einer auf die Includes.

Der Include-Pfad sollte wirklich in die "VC++-Verzeichnisse" einfügen, die lib-Pfade unter "Linker" in die zusätzlichen Abhängigkeiten.

Zeig am besten mal Bilder von deinen Projekteinstellungen.

Dirk Schulz
Matthias Gubisch
Establishment
Beiträge: 470
Registriert: 01.03.2009, 19:09

Re: Einsteigerhilfe: Einbinden von Bibliotheken

Beitrag von Matthias Gubisch »

hmm wenn ich mir deine verzeichnise so anschaue dann hast du da wohl was verwechselt

So wies aussieht hast du die Verzeichnise zu den Verzeichnisen für ausführbare Dateien hinzugefügt

Versuche mal die \include zu den Verzeichnisen für die Includedateien hinzuzufügen und die \lib zu den Verzeichnisen für die Bibliotheken

umstellen tust du das bei der Combobox die in Patriks Bild mit Nr. 4 beschriftet ist

Viele Grüße
Matthias
Bevor man den Kopf schüttelt, sollte man sich vergewissern einen zu haben
Gelöschter Benutzer
Beiträge: 92
Registriert: 26.02.2009, 22:09

Re: Einsteigerhilfe: Einbinden von Bibliotheken

Beitrag von Gelöschter Benutzer »

Dann bitte für eine Plattform nur x64 ODER x86 nehmen. Das dürfte auch nochmal derbe Probleme verursachen.
mjwx4p
Beiträge: 1
Registriert: 17.12.2010, 00:44

Re: Einsteigerhilfe: Einbinden von Bibliotheken

Beitrag von mjwx4p »

also die DirectX-SDK erstellt ein systemweites Makro, aufrufbar als $(DXSDK_DIR), das Makro zeigt nach z.B. "C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\", also den Pfad wo das DirextX-SDK installiert ist mit anschliessendem Backslash
Jiba
Beiträge: 31
Registriert: 16.01.2010, 17:42

Re: Einsteigerhilfe: Einbinden von Bibliotheken

Beitrag von Jiba »

Da kann man ja danken für die schnelle Antwort ;-)
Die letzte Antwort ist von 2009
Antworten