|
JLI Spieleprogrammierung
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
AFE-GmdG JLI MVP
Alter: 45 Anmeldedatum: 19.07.2002 Beiträge: 1374 Wohnort: Irgendwo im Universum... Medaillen: Keine
|
Verfasst am: 30.05.2005, 13:21 Titel: Linkerfehler (64k-Optimierung) |
|
|
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 |
|
|
Patrick Dark JLI Master
Anmeldedatum: 25.10.2004 Beiträge: 1895 Wohnort: Düren Medaillen: Keine
|
Verfasst am: 30.05.2005, 15:18 Titel: |
|
|
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 _________________ '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 |
|
|
AFE-GmdG JLI MVP
Alter: 45 Anmeldedatum: 19.07.2002 Beiträge: 1374 Wohnort: Irgendwo im Universum... Medaillen: Keine
|
Verfasst am: 31.05.2005, 09:33 Titel: |
|
|
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 |
|
|
AFE-GmdG JLI MVP
Alter: 45 Anmeldedatum: 19.07.2002 Beiträge: 1374 Wohnort: Irgendwo im Universum... Medaillen: Keine
|
Verfasst am: 31.05.2005, 12:56 Titel: |
|
|
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 |
|
|
Patrick Dark JLI Master
Anmeldedatum: 25.10.2004 Beiträge: 1895 Wohnort: Düren Medaillen: Keine
|
|
Nach oben |
|
|
Patrick Dark JLI Master
Anmeldedatum: 25.10.2004 Beiträge: 1895 Wohnort: Düren Medaillen: Keine
|
Verfasst am: 31.05.2005, 14:11 Titel: |
|
|
Habe unten nun ein Errata hinzugefügt, falls es bei anderen Fehlern gibt (Was ich nicht hoffe ) einfach Posten damit ich das Errata erweitern kann _________________ '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 |
|
|
|
|
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
|