JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.phpMedaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

[Kapitel 19 DirectXGraphics] Linker Fehler (?)
Gehe zu Seite 1, 2  Weiter
 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Fragen, Antworten und Kritik
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
alias
Mini JLI'ler



Anmeldedatum: 04.02.2007
Beiträge: 7

Medaillen: Keine

BeitragVerfasst am: 04.02.2007, 11:39    Titel: [Kapitel 19 DirectXGraphics] Linker Fehler (?) Antworten mit Zitat

Hallo

Auf grund eines Schulprojekts versuche ich ein wenig DirectX zu lernen. Deswegen habe ich mir das buch jli Spielerprogrammierung mit DirectX gekauft. Bis zu Kaptitel 19 hat noch alles geklappt, aber jetzt gibs probleme. Ich hoffe hier könnt mir weiterhelfen.

Einen quelltextfehler schließe ich eigentlich aus, da ich inzwischen den gleich Quelltext benutze der der auf der CD zum Kapittel 19 DirectXGraphics ist.

Aber zum fehler:
In Kapittel 19 werden zum ersten mal DX Bibliotheken verwendet um z.B. die Funktion Direct3DCreate9(D3D_SDK_VERSION) ausführen zu können. Deshalb müssen die entsprechenden Bibliotheken dem Projekt hinzugefügt werde. Ich denke hier muss ich irgendwas falsch machen, leider weiss ich nicht was



Bei der Angabe der lib-Ordner war mir nicht klar welchen ordner ich jetzt genau einbinden muss (../lib oder ../lib/x86) da im buch beides gesagt wird. Deshalb hab ich beide Pfade angegeben.



Bei den Bibliotheken hab ich auch eine absolute Pfadangabe versucht, ohne Erfolg.




Und als Fehlermeldung bekomme vom Microsoft Visual C++:

-------------- Build: default in DirectXGraphics ---------------
Execution of 'cl.exe /nologo /ML /Gd /GX /O2 /W3 /I"C:\Programme\Microsoft DirectX 9.0 SDK (October 2005)\Include" /I"C:\Programme\Microsoft Visual C++ Toolkit 2003\include" /I"C:\Programme\Microsoft Platform SDK\Include" /c DirectXGraphics.cpp /Fo.objs\DirectXGraphics.obj' in 'D:\schule\nta - aik - projekt\buch jli sidX\19.0\DirectXGraphics' failed.

Und vom GNU GCC Compiler (den ich normalerweise benutze):

-------------- Build: default in DirectXGraphics ---------------
Compiling: DirectXGraphics.cpp
Linking executable: DirectXGraphics.exe
.objs\DirectXGraphics.o(.text+0x360):DirectXGraphics.cpp: undefined reference to `Direct3DCreate9@4'
collect2: ld returned 1 exit status
Process terminated with status 1 (0 minutes, 1 seconds)
1 errors, 0 warnings[/img]

ich danke euch schon mal
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
manu
Super JLI'ler


Alter: 35
Anmeldedatum: 09.03.2006
Beiträge: 327
Wohnort: allgäu (DE)
Medaillen: Keine

BeitragVerfasst am: 04.02.2007, 11:49    Titel: Antworten mit Zitat

Hi,

binde mal nur den ordner /lib/x86 ein.

und dann halt noch die d3d9.lib dem Projekt hinzufügen. Entweder in den Projektoptionen wie warscheinlich im Buch beschrieben __oder__ per Präprozessor-Direktive direkt zu Beginn im Code.

CPP:
#pragma comment(lib, "d3d9.lib")
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
alias
Mini JLI'ler



Anmeldedatum: 04.02.2007
Beiträge: 7

Medaillen: Keine

BeitragVerfasst am: 04.02.2007, 13:46    Titel: Antworten mit Zitat

Habs probiert. Leider immer noch das selbe.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
The Lord of Programming
Living Legend


Alter: 37
Anmeldedatum: 14.03.2003
Beiträge: 3122

Medaillen: Keine

BeitragVerfasst am: 04.02.2007, 15:47    Titel: Antworten mit Zitat

Soweit ich weiß, ist die Reihenfolge der Verzeichnisse, die du angibst, auch wichtig. Hast du mal versucht, da ein bisschen rumzuspielen?

Hast du mal geschaut, ob die Libs überhaupt in dem Verzeichnis existieren?

Wenn alles nichts hilft, würde ich mal das SDK und/oder deine IDE neu installieren.
_________________
www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console


Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
alias
Mini JLI'ler



Anmeldedatum: 04.02.2007
Beiträge: 7

Medaillen: Keine

BeitragVerfasst am: 10.02.2007, 11:47    Titel: Antworten mit Zitat

Ne, hat alles leider nichts geholfen Sad

Hmm . . . Was vielleicht noch zu sagen wäre, wenn ich die zeile

lpD3D = Direct3DCreate9(D3D_SDK_VERSION);

auskommentiere, kann ich kompielieren und das Programm starten. Dann tut es aber nicht viel.

Woran kann es denn liegen das Direct3DCreate9() nicht gefunden wird?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jonathan_Klein
Living Legend


Alter: 37
Anmeldedatum: 17.02.2003
Beiträge: 3433
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 10.02.2007, 12:02    Titel: Antworten mit Zitat

Kennt der etwa nur D3DCreate nicht, aber die anderen D3D Funktionen und Objkete und was weiß ich ws doch? Das ist eigentlich komisch.
_________________
https://jonathank.de/games/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
The Lord of Programming
Living Legend


Alter: 37
Anmeldedatum: 14.03.2003
Beiträge: 3122

Medaillen: Keine

BeitragVerfasst am: 10.02.2007, 13:56    Titel: Antworten mit Zitat

Hmm...Frage: Hast du auch die dxguid.lib eingebunden?
_________________
www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console


Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
alias
Mini JLI'ler



Anmeldedatum: 04.02.2007
Beiträge: 7

Medaillen: Keine

BeitragVerfasst am: 11.02.2007, 10:55    Titel: Antworten mit Zitat

Jetzt ist mir noch was aufgefallen.
Wenn ich die Beispielprogramme aus dem buch deinstalliere und wieder
installiere ist es mir möglich die Beispielprogramme zu Kompilieren und
auszuführen. Drücke ich jedoch auf Rebuild bekomme ich den oben genanten
Meldungen und ich kann nicht mehr ausführen.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
DirectXer
Dark JLI'ler



Anmeldedatum: 05.02.2005
Beiträge: 1201
Wohnort: Köln
Medaillen: Keine

BeitragVerfasst am: 11.02.2007, 14:44    Titel: Antworten mit Zitat

das könnte daran liegen, dass die beispiele ausm buch vorkompiliert sind und der beim ersten Benutzen einfach nur die fertige exe startet. Beim rebuild wird dann neu erstellt mit deinem linker...

Gruß DXer
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Reboot
Mini JLI'ler



Anmeldedatum: 24.01.2007
Beiträge: 23

Medaillen: Keine

BeitragVerfasst am: 11.02.2007, 16:50    Titel: Antworten mit Zitat

Du brauchst ein DevPack dafür. Bei Dev-C++ hat man das selbe Problem.

Probier's mal damit. Es kann sein, dass du die Libs manuell kopieren musst.
http://devpaks.org/details.php?devpak=136

Der Linker kann mit den Libs der Form .lib wenig anfangen. Du brauchst welche im .a Format. Und diese sind im DevPack bei.
_________________
Sprachen: C/C++, C#, Assembler (16-Bit), QuickBASIC
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Christian Rousselle
Site Admin


Alter: 48
Anmeldedatum: 19.07.2002
Beiträge: 1630

Medaillen: Keine

BeitragVerfasst am: 11.02.2007, 22:55    Titel: Antworten mit Zitat

Man braucht kein DevPack, ich kann es kompilieren. Kannst du nochmal alle Einstellungen nochmal prüfen.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
alias
Mini JLI'ler



Anmeldedatum: 04.02.2007
Beiträge: 7

Medaillen: Keine

BeitragVerfasst am: 12.02.2007, 13:41    Titel: Antworten mit Zitat

Ja klar. Wenn bis her niemand sonst diese Probleme hier gemeldet hat, ist es fast sicher das ich was falsch gemacht habe.

Aber jetzt mal alles schrittweise durchgehen:

- Code::Block deinstallieren und alle Einstellungen löschen
- Microsoft Plattform SDK deinstallieren
- Microsoft Visual C++ Toolkid 2003 Deinstallieren
- Microsoft DirectX 9.0 SDK Update (Oktober 2005) deinstallieren
- Jetz lern ich Spieleprogrammierung mit DirektX deinstallieren
- PC neustarten

- Microsoft Visual C++ Toolkit 2003 installieren
- Microsoft Plattform SDK installieren, bei der Installation Typical auswählen
- Code::Blocks installieren
- Beispielprogramme installieren

Im Code::blocks Compiler Settings
- Microsoft Visual C++ Toolkid 2003 als default-Kompiler setzen
- Flag Enable warnings level 3 setzen
- Flag Maximize Speed setzen
- Flag Enable C++ Exception Handling setzen
- Flag __cdecl calling convention setzen
- Flag Singel-threaded runtime Library setzen

Reiter Directories / Compieler
- C:\Programme\Microsoft Visual C++ Toolkit 2003\include
- C:\Programme\Microsoft Platform SDK\Include
Reiter Directories / Linker
- C:\Programme\Microsoft Visual C++ Toolkit 2003\lib
- C:\Programme\Microsoft Platform SDK\Lib

- Microsoft DirectX 9.0 SDK installieren

Reiter Directories / Compieler und Linker
- C:\Programme\Microsoft DirectX 9.0 SDK (October 2005)\Include
- C:\Programme\Microsoft DirectX 9.0 SDK (October 2005)\Lib\x86
Hinzugefügt und nach oben geschoben.

Beispielprogramm läst sich Kompilern. Nachdem ich auf rebuild klicke läst es sich nicht mehr Kompiliren.

Mehr fällt mir nicht ein. Keine Ahnung was ich vergessen hab.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jonathan_Klein
Living Legend


Alter: 37
Anmeldedatum: 17.02.2003
Beiträge: 3433
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 12.02.2007, 14:00    Titel: Antworten mit Zitat

d.h. du kannst jedes Projekt compilieren, aber nur einmal?
Bei Visaul Studio zumindest gibt es eine Funktion, das Projekt "nuer" erstellen zu lassen. Das bedeutet, dass alle Temporären Dateien (*.obj und son Kram) gelsöcht werdne und neu erstellt werden. Dann müsste es eigneltich so sein, als ob du es nie erstellt hättest. Zwar ein komische Problem, aber ne Idee wärs.
_________________
https://jonathank.de/games/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
alias
Mini JLI'ler



Anmeldedatum: 04.02.2007
Beiträge: 7

Medaillen: Keine

BeitragVerfasst am: 12.02.2007, 15:36    Titel: Antworten mit Zitat

Nicht ganz. Ich kann die Beispielprogramme auch mehrmals compilieren, aber nicht bauen (sagt man das so?). Also das zusammenfügen funktioniert nicht. So interpretiere ich zumindest.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jonathan_Klein
Living Legend


Alter: 37
Anmeldedatum: 17.02.2003
Beiträge: 3433
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 12.02.2007, 15:49    Titel: Antworten mit Zitat

äh, also einfach ein LInker fehelr, aber das kompilieren klappt?
Dann liegts ja doch nur an den Linkereinstellungen.
Wie siehts mit der dxguid.lib aus?
Ist die eingebunden?
_________________
https://jonathank.de/games/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Fragen, Antworten und Kritik Alle Zeiten sind GMT
Gehe zu Seite 1, 2  Weiter
Seite 1 von 2

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum