Gå til innhold

Anbefalte innlegg

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 av Fredrik90
Lenke til kommentar
Videoannonse
Annonse

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.o

a.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++filt

00000170 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:

$ ./prog

hello

 

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 av søppel
Lenke til kommentar

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 av søppel
Lenke til kommentar

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
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 av søppel
Lenke til kommentar

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

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...