Fredrik90 Skrevet 24. januar 2005 Del Skrevet 24. januar 2005 (endret) Hei Har begynnt å lese på Direct3d. men så støter jeg på et problem da. feil 1 Linking... X_File.obj : error LNK2019: unresolved external symbol _D3DXCreateTextureFromFileA@12 referenced in function "void __cdecl load_X_file(char *)" (?load_X_file@@YAXPAD@Z) feil 2 X_File.obj : error LNK2019: unresolved external symbol _D3DXLoadMeshFromXA@32 referenced in function "void __cdecl load_X_file(char *)" (?load_X_file@@YAXPAD@Z) Flight-Real.exe : fatal error LNK1120: 2 unresolved externals har instalert directx sdk så det er ikke problemet. håper noen kan hjelpe. og ja jeg har husket å inkludere d3d9.lib, d3dx9.lib osv. Mhv.Fredrik edit: har også søkt på gamedev.com google.com og gametutorials.com men finner ikke svaret. Endret 24. januar 2005 av Fredrik90 Lenke til kommentar
saboi Skrevet 24. januar 2005 Del Skrevet 24. januar 2005 du må inkludere d3d9xtex.h og d3d9xmesh.h og linke med d3dx9.lib mener du at du har linket når du sier at du har inkludert .lib filer? Lenke til kommentar
kjetil7 Skrevet 24. januar 2005 Del Skrevet 24. januar 2005 Hvis du allerede linker med d3dx9.lib var det litt mystisk. Sikker på at du linker med biblioteket? Prøv å legg inn denne linjen i en cpp-fil: #pragma comment( lib, "d3dx9.lib" ) Lenke til kommentar
Fredrik90 Skrevet 24. januar 2005 Forfatter Del Skrevet 24. januar 2005 har nå prøvd alt dere har sakt og alle feilene kommer sånn som istad. bruker VC++ 2005 express beta. håper noen har en løsning. koden kompilerer het fint men så kommer det til å linke og da sier det stopp. håper på et raskt svar. Mvh. Fredrik Lenke til kommentar
søppel Skrevet 24. januar 2005 Del Skrevet 24. januar 2005 (endret) Bruk et verktøy for å sjekke hvilke symboler som ligger hvor. void a(); int main() { a(); return(0); } // main #include <iostream> void a() { std::cout << "hello\n"; } // a $ g++ -g -c a.cpp$ g++ -g -c b.cpp ..kompileres uten problemer, som hos deg. (filen b.cpp tilsvarer biblioteket 'DirectX') Men når vi linker: $ g++ -g a.oa.o(.text+0x1d): In function `main': /home/lars/tests/a.cpp:5: undefined reference to `a()' Så må vi leite, her er det jo veldig lett å gjette på første forsøk hvor symbolet `a()' ligger: $ nm b.o | c++filt00000170 t global constructors keyed to _Z1av 00000100 T a() 0000011c t __static_initialization_and_destruction_0(int, int) ... *bingo* .. dette er filen jeg må linke inn for at den skal finne symbolet `a()', slik: $ g++ -g a.o b.o -o prog kjøres: $ ./proghello Jeg er sikker på at MS distribuerer et tilsvarende verktøy -- noen andre her vet sikkert hva de har kallt det. Edit: Det er lurt å sette seg inn i grunnleggende ting - for å spare seg selv for en masse bryderier: http://www.network-theory.co.uk/docs/gccintro/ (det det snakkes om her kan brukes i sammenheng med alle kompilere -- det er bare trivielle forskjeller i syntax o.s.v.) Endret 24. januar 2005 av søppel Lenke til kommentar
saboi Skrevet 24. januar 2005 Del Skrevet 24. januar 2005 eh, han vet hvor alt ligger, d3dx9.lib, som ble sagt 3 ganger. Lenke til kommentar
søppel Skrevet 25. januar 2005 Del Skrevet 25. januar 2005 (endret) Ser ikke ut som om linkeren er enig. Om han vet, at han vet, at han vet, at han gjør det rektig (hvordan? - docs skrevet av andre) - så kunne det være en idé å sjekke i libbet om symbolet faktisk var der (hvordan? - man tar en titt selv) - selv om det er der. (feil under nedlasting av lib? i dunno) Edit: men for all del -- folk får gjøre hva de vil Endret 25. januar 2005 av søppel Lenke til kommentar
Fredrik90 Skrevet 25. januar 2005 Forfatter Del Skrevet 25. januar 2005 nå har jeg prøvd både pragma coment og linke de med manuelt. men alt jeg får er de samme feilene. har ingen opplevd noe lignene før. Håper noen vet noe. som sakt bruker jeg vc++ så hvis noen vet om at det kan være et problem der eller en spesiel metode jeg må bruke så si ifra. ser at det er en debatt som begynner her og det trenger vi ikke. de som liker linux liker det og de som liker windows liker det. mvh. Fredrik Lenke til kommentar
Klette Skrevet 25. januar 2005 Del Skrevet 25. januar 2005 Holdt ikke du egentlig på å lære deg OpenGL? Litt off topic, men men Uansett, du har antagelig gjort det, men du har innstalert directx9 sdken? Lenke til kommentar
Fredrik90 Skrevet 25. januar 2005 Forfatter Del Skrevet 25. januar 2005 ja jeg har gjort det og henvist VC++ til den folderen. Lenke til kommentar
søppel Skrevet 25. januar 2005 Del Skrevet 25. januar 2005 (endret) ser at det er en debatt som begynner her og det trenger vi ikke. de som liker linux liker det og de som liker windows liker det. de som liker linux liker det og de som liker windows liker det. Hvem, hva, hvor? Sug meg i rævva -- les det jeg skriver. Bruk et verktøy... Jeg er sikker på at MS distribuerer et tilsvarende verktøy -- noen andre her vet sikkert hva de har kallt det. ... (det det snakkes om her kan brukes i sammenheng med alle kompilere (og OS/kompiler-verktøy) -- det er bare trivielle forskjeller i syntax o.s.v.) Hva har dette med Linux kontra Windows å gjøre? Dette er slik jeg løser slike problemer -- (jupp, både under Linux og Windows - og jeg vet andre kompilere+verktøy har samme funksjonalitet). Du spør etter løsning på problem -- jeg svarer -- problem? Endret 25. januar 2005 av søppel Lenke til kommentar
Fredrik90 Skrevet 26. januar 2005 Forfatter Del Skrevet 26. januar 2005 lite saklig innlegg der søppel. men jeg lurer på om noen vet hva som kan løse problemet. Lenke til kommentar
Z_IM Skrevet 26. januar 2005 Del Skrevet 26. januar 2005 du er sikker på at du har ljinket alt? D3DX? prøv igjen de er ikke så vanskelig. Lenke til kommentar
Fredrik90 Skrevet 26. januar 2005 Forfatter Del Skrevet 26. januar 2005 har prøvd flere ganger nå. både manuelt og pragma. Lenke til kommentar
søppel Skrevet 26. januar 2005 Del Skrevet 26. januar 2005 Hvorfor ikke sjekke om symbolet ER i biblioteket du linker med? *shrug* Lenke til kommentar
Fredrik90 Skrevet 26. januar 2005 Forfatter Del Skrevet 26. januar 2005 hvordan gjør jeg det? åpner fila og ser eller er det en annen måte? Lenke til kommentar
søppel Skrevet 26. januar 2005 Del Skrevet 26. januar 2005 http://msdn.microsoft.com/library/default.....2f.EXPORTS.asp Lenke til kommentar
GeirGrusom Skrevet 26. januar 2005 Del Skrevet 26. januar 2005 har du riktig path da? Direct X SDK er nok laget for Visual Studio.NET. men funker ikke for Visual Studio.NET 2003 (ihvertfall ikke hos meg) for da kommer det et DirectX logo når Visual Studio starter, så da må du velge riktig "additional library directories" kanhende... Lenke til kommentar
saboi Skrevet 26. januar 2005 Del Skrevet 26. januar 2005 ehh. dx sdk funker fint hos meg med vs .net 2003. dessuten har han vs express beta 2005 Lenke til kommentar
GeirGrusom Skrevet 26. januar 2005 Del Skrevet 26. januar 2005 directx 9.0c SDK later som om jeg ikke har noenting installert, 9.0b lot være å kopiere inn noe som helst, og lata som alt gikk flott, den dreit lodrett i managed directx, men registrerte at det var installert... så jeg fikk tak i directx 9.0c sdk, og da ble alt kopiert inn i sdk mappa, men visual studio har ikke registrert at directx sdk er installert. nå har jeg hatt store problemer med directx sdk på alle maskinene mine... AlphaArg(i fragment shaders(vertex/pixel shaders i direct3d?)) funker ikke på verken GeForce3 eller GeForec FX 5700, det er vist ikke støttet av min maskinvare (bullpup) så jeg holder meg til opengl jeg. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå