JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=fbb036a50b402d03ad0e7ffcf96da4beMedaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Linkerfehler (64k-Optimierung)

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
AFE-GmdG
JLI MVP
JLI MVP


Alter: 45
Anmeldedatum: 19.07.2002
Beiträge: 1374
Wohnort: Irgendwo im Universum...
Medaillen: Keine

BeitragVerfasst am: 30.05.2005, 13:21    Titel: Linkerfehler (64k-Optimierung) Antworten mit Zitat

Hallo,
Ich bekomme den Linkerfehler
Code:
Nichtaufgelöstes externes Symbol __fltused
, wenn ich in meinem Programm die Codezeile
CPP:
_pD3DDevice->Clear(0, NULL, D3DCLEAR_ZBUFFER, 0, 1.0f, 0);
einfüge.
Die Codezeile befindet sich natürlich an der richtigen Stelle und alle Variablen sind auch mit den richtigen Werten initialisiert.
Ich habe den Linkerfehler bis zu dieser Codezeile zurückverfolgt, aber auf das Clear kann ich aus naheliegenden Gründen nicht verzichten...

Ich nehme stark an, dass aufgrund der 64k-Optimierung (die d3d9.lib wird nicht mitgelinkt, die Dll wird dynamisch geladen) das Symbol fehlt.
_________________
CPP:
float o=0.075,h=1.5,T,r,O,l,I;int _,L=80,s=3200;main(){for(;s%L||
(h-=o,T= -2),s;4 -(r=O*O)<(l=I*I)|++ _==L&&write(1,(--s%L?_<(L)?--_
%6:6:7)+\"World! \\n\",1)&&(O=I=l=_=r=0,T+=o /2))O=I*2*O+h,I=l+T-r;}
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Patrick
Dark JLI Master



Anmeldedatum: 25.10.2004
Beiträge: 1895
Wohnort: Düren
Medaillen: Keine

BeitragVerfasst am: 30.05.2005, 15:18    Titel: Antworten mit Zitat

Hi,

der Fehler liegt nicht an der d3d9.lib sondern ganz einfach an der benutzung von float.

float braucht auf Windows für spezielle Optimierungen leider eine Zusatzlib, die durch folgenden Code jedoch nicht mitgelinkt wird:
CPP:
#pragma comment(linker,"/NODEFAULTLIB")
Das blöde ist, ich habe die richtige Lib wo das steht noch nicht genau identifizieren können und mit den Linkeroptionen bin ich auch noch genau so weit um diesen Fehler zu kompensieren.

Naja aber auf 1,5 KB kann man ja "noch" verzichten Wink
_________________
'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
AFE-GmdG
JLI MVP
JLI MVP


Alter: 45
Anmeldedatum: 19.07.2002
Beiträge: 1374
Wohnort: Irgendwo im Universum...
Medaillen: Keine

BeitragVerfasst am: 31.05.2005, 09:33    Titel: Antworten mit Zitat

Ich bin das Problem jetzt erstmal umgangen, indem ich das Programm "normal" entwickle und wenn ich der Meinung bin, dass es fertig ist, versuche ich es noch mal mit 64k Kompileroptionen zu erstellen.

Die Debugversion ist jetzt 164kb gross, die ReleaseVersion jetzt 80kb, die 64k-Debug-Version war 8kb gross, die 64k-ReleaseVersion 3,5kb... (bei so gut wie gleicher Funktionalität... - so gut wie, weil ich das Floatproblem nicht lösen konnte)
_________________
CPP:
float o=0.075,h=1.5,T,r,O,l,I;int _,L=80,s=3200;main(){for(;s%L||
(h-=o,T= -2),s;4 -(r=O*O)<(l=I*I)|++ _==L&&write(1,(--s%L?_<(L)?--_
%6:6:7)+\"World! \\n\",1)&&(O=I=l=_=r=0,T+=o /2))O=I*2*O+h,I=l+T-r;}
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
AFE-GmdG
JLI MVP
JLI MVP


Alter: 45
Anmeldedatum: 19.07.2002
Beiträge: 1374
Wohnort: Irgendwo im Universum...
Medaillen: Keine

BeitragVerfasst am: 31.05.2005, 12:56    Titel: Antworten mit Zitat

man definiere
CPP:
extern "C" char _fltused=0;
um das Problem zu lösen.
Thanx to BlackLordOfDragons
_________________
CPP:
float o=0.075,h=1.5,T,r,O,l,I;int _,L=80,s=3200;main(){for(;s%L||
(h-=o,T= -2),s;4 -(r=O*O)<(l=I*I)|++ _==L&&write(1,(--s%L?_<(L)?--_
%6:6:7)+\"World! \\n\",1)&&(O=I=l=_=r=0,T+=o /2))O=I*2*O+h,I=l+T-r;}
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Patrick
Dark JLI Master



Anmeldedatum: 25.10.2004
Beiträge: 1895
Wohnort: Düren
Medaillen: Keine

BeitragVerfasst am: 31.05.2005, 14:03    Titel: Antworten mit Zitat

Gut am Besten ich füge diese Info direkt in das HowTo von mir ein!
_________________
'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Patrick
Dark JLI Master



Anmeldedatum: 25.10.2004
Beiträge: 1895
Wohnort: Düren
Medaillen: Keine

BeitragVerfasst am: 31.05.2005, 14:11    Titel: Antworten mit Zitat

Habe unten nun ein Errata hinzugefügt, falls es bei anderen Fehlern gibt (Was ich nicht hoffe Smile) einfach Posten damit ich das Errata erweitern kann Smile
_________________
'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung Alle Zeiten sind GMT
Seite 1 von 1

 
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