Permalänk
Medlem

Länkfel för OpenGL

Hej,

har inte gjort nått med 3d på ett par år och var lite sugen på att göra ett litet spel igen. Jag har dock samma problem som jag haft i stort sett alla mina 3d projekt, nämligen att opengl inte vill länka. Jag har specificerat lib filerna och provat att dra ner lite olika varianter av dem. De hittas av länkaren, men funktionerna som används verkar inte hittas i libbarna, trots att jag kan hitta dem om jag söker efter dem i libben med en text editor. Utgår från NeHes tutorials i början för att förska få igång fönsterhantering och opengl.

Ville helst köra Visual C++ Express eftersom den var gratis, men efter några timmars mixtrande så bytte jag till msys och gcc för att se om det gick bättre där (var inte säker på att jag länkade in libbarna rätt i Visual Studio), med samma resultat.

Jag har haft detta problemet förr som sagt, men jag har aldrig förstått hur jag löst det, eftersom det helt plötsligt har funkat och så har jag inte tänkt mer på det sen. Denna gång verkar det vara tokkört dock. Är det nån som haft problemet och vet nån enkel fälla man kan gå i?

Överallt på nätet så brukar dessa fel bero på att folk glömt länka in libbarna, och det måste väl även vara det som jag gör fel på nått sätt, men jag vet inte hur.

Mvh Jimmy

Visa signatur

Är du snabbare än en gris? AnimalSpeeder ger dig svaret:
http://itunes.apple.com/se/app/animalspeeder/id551490974?l=en...

Permalänk
Medlem

Låter väldigt konstigt. För det första, har du även inkluderat rätt headerfiler?

Man kan länka libbar på lite olika sätt i visual studio. Antingen kan du lägga till dem i projektet, eller köra med #pragma comment(lib, "lib.lib"), eller lägga till under project settings. Testa lite olika och se om det funkar.

Rekommenderar dig att hålla dig till Visual Studio iaf, det är en väldigt trevlig och tidsbesparande IDE.

Visa signatur

hmm

Permalänk
Medlem

Hej och tack för svaret!

Jag tycker med det är jätte konstigt, eftersom alla andra som har problem med det vad jag kan hitta på nätet har helt enkelt glömt att länka med libbarna.

Om det är fel på headerfilerna så borde jag ju få syntax fel istället för länkfel tycker jag...

Jag har redan provat bägge av de varianter som du föreslår, både var för sig och en och en. Får samma problem. Så här ser loggen ut (inklusive pragmasökningarna i början då):

Linking... Searching libraries Searching C:\Utveckling\SDL\SDL-1.2.9\lib\sdl.lib: Searching C:\Utveckling\SDL\SDL-1.2.9\lib\sdlmain.lib: Searching C:\Utveckling\SDL\SDL-1.2.9\lib\opengl32.lib: Searching C:\Utveckling\SDL\SDL-1.2.9\lib\glu32.lib: Searching C:\Utveckling\SDL\SDL-1.2.9\lib\glut32.lib: Searching C:\Program Files\Microsoft Visual Studio 8\VC\lib\msvcrt.lib: Searching C:\Program Files\Microsoft Visual Studio 8\VC\lib\kernel32.lib: Searching ..\..\..\..\..\..\..\Utveckling\SDL\SDL-1.2.9\lib\OpenGL32.lib: Searching C:\Utveckling\SDL\SDL-1.2.9\lib\sdl.lib: Searching C:\Utveckling\SDL\SDL-1.2.9\lib\sdlmain.lib: Searching C:\Utveckling\SDL\SDL-1.2.9\lib\opengl32.lib: Searching C:\Utveckling\SDL\SDL-1.2.9\lib\glu32.lib: Searching C:\Utveckling\SDL\SDL-1.2.9\lib\glut32.lib: Searching C:\Program Files\Microsoft Visual Studio 8\VC\lib\msvcrt.lib: Searching C:\Program Files\Microsoft Visual Studio 8\VC\lib\kernel32.lib: Searching ..\..\..\..\..\..\..\Utveckling\SDL\SDL-1.2.9\lib\OpenGL32.lib: Searching C:\Utveckling\SDL\SDL-1.2.9\lib\sdl.lib: Searching C:\Utveckling\SDL\SDL-1.2.9\lib\sdlmain.lib: Searching C:\Utveckling\SDL\SDL-1.2.9\lib\opengl32.lib: Searching C:\Utveckling\SDL\SDL-1.2.9\lib\glu32.lib: Searching C:\Utveckling\SDL\SDL-1.2.9\lib\glut32.lib: Finished searching libraries skysurfers.obj : error LNK2019: unresolved external symbol _gluPerspective referenced in function "int __cdecl resizeWindow(int,int)" (?resizeWindow@@YAHHH@Z) skysurfers.obj : error LNK2019: unresolved external symbol _glLoadIdentity referenced in function "int __cdecl resizeWindow(int,int)" (?resizeWindow@@YAHHH@Z) skysurfers.obj : error LNK2019: unresolved external symbol _glMatrixMode referenced in function "int __cdecl resizeWindow(int,int)" (?resizeWindow@@YAHHH@Z) skysurfers.obj : error LNK2019: unresolved external symbol _glViewport referenced in function "int __cdecl resizeWindow(int,int)" (?resizeWindow@@YAHHH@Z) skysurfers.obj : error LNK2019: unresolved external symbol _glHint referenced in function "int __cdecl initGL(void)" (?initGL@@YAHXZ) skysurfers.obj : error LNK2019: unresolved external symbol _glDepthFunc referenced in function "int __cdecl initGL(void)" (?initGL@@YAHXZ) skysurfers.obj : error LNK2019: unresolved external symbol _glEnable referenced in function "int __cdecl initGL(void)" (?initGL@@YAHXZ) skysurfers.obj : error LNK2019: unresolved external symbol _glClearDepth referenced in function "int __cdecl initGL(void)" (?initGL@@YAHXZ) skysurfers.obj : error LNK2019: unresolved external symbol _glClearColor referenced in function "int __cdecl initGL(void)" (?initGL@@YAHXZ) skysurfers.obj : error LNK2019: unresolved external symbol _glShadeModel referenced in function "int __cdecl initGL(void)" (?initGL@@YAHXZ) skysurfers.obj : error LNK2019: unresolved external symbol _glEnd referenced in function "int __cdecl drawGLScene(void)" (?drawGLScene@@YAHXZ) skysurfers.obj : error LNK2019: unresolved external symbol _glVertex3f referenced in function "int __cdecl drawGLScene(void)" (?drawGLScene@@YAHXZ) skysurfers.obj : error LNK2019: unresolved external symbol _glColor3f referenced in function "int __cdecl drawGLScene(void)" (?drawGLScene@@YAHXZ) skysurfers.obj : error LNK2019: unresolved external symbol _glBegin referenced in function "int __cdecl drawGLScene(void)" (?drawGLScene@@YAHXZ) skysurfers.obj : error LNK2019: unresolved external symbol _glRotatef referenced in function "int __cdecl drawGLScene(void)" (?drawGLScene@@YAHXZ) skysurfers.obj : error LNK2019: unresolved external symbol _glTranslatef referenced in function "int __cdecl drawGLScene(void)" (?drawGLScene@@YAHXZ) skysurfers.obj : error LNK2019: unresolved external symbol _glClear referenced in function "int __cdecl drawGLScene(void)" (?drawGLScene@@YAHXZ) skysurfers - 18 error(s), 0 warning(s)

edit: Vilka libbar brukar ni köra med? Hittar bara massa från 96 och 98. Kanske inte spelar nån roll iofs..

Visa signatur

Är du snabbare än en gris? AnimalSpeeder ger dig svaret:
http://itunes.apple.com/se/app/animalspeeder/id551490974?l=en...

Permalänk
Permalänk
Medlem

Hur menar du nu?

Citat:

Ursprungligen inskrivet av alexandersson
X

Visa signatur

Är du snabbare än en gris? AnimalSpeeder ger dig svaret:
http://itunes.apple.com/se/app/animalspeeder/id551490974?l=en...

Permalänk
Citat:

Ursprungligen inskrivet av fish
Hur menar du nu?

Jag ångrade mig och tog bort meddelandet.

Permalänk
Medlem

OpenGL-libraries ska väl hänga med Visual Studio iaf? Just i det du postade såg det ut som OpenGL/SDL-libbar, de kanske skiljer sig något? Iaf i mitt så ligger opengl-libbarna i:
$(VCInstallDir)PlatformSDK\lib
men den sökvägen är självklart inkluderad (globalt, inte bara i projektet) så det är ju inget jag behöver skriva in.

Visa signatur

g++

Permalänk
Medlem

Jag har laborerat lite med olika libbar eftersom jag inte fått det att funka. Satte om så den använde dem i PlatformSDK nu igen, men det ger ingen skillnad. Det skumma är att om jag döper om opengl32.lib så klagar kompilatorn på att den inte hittar den, så det borde ju betyda att den läser den men bara inte klarar att hitta de dependencies som den söker..

Tack iallafall!

Får hoppas man råkar på någon kompilator-kung här

Visa signatur

Är du snabbare än en gris? AnimalSpeeder ger dig svaret:
http://itunes.apple.com/se/app/animalspeeder/id551490974?l=en...

Permalänk
Inaktiv

Skumt. Testat att skippa SDL (dvs temporärt byta namn på katalogen) och bara kompilera något väldigt basic som använder opengl? Att ha opengl32.lib (och möjligen gl.h?) på flera ställen verkar otäckt.

En sak som slog mig just nu är att du kanske återanvänder ett riktigt gammalt workspace som har "fel" namn på externals (minns att man kan/kunde ställa in att det ska/skulle vara ett _ i början på dylika).

Kastar bara ur mig lite ideer nu; det kan ju hända att en rebuild löser biffen

Permalänk
Medlem

Tusen tack för hjälpen, fick igång det nu äntligen

Jag vet dock återigen inte riktigt vad som löste det, kombinerade lite av dina tips, rensade bort lite filer i sdl lib katalogen som var opengl relaterade, hade dock inte just opengl32.lib där, så jag vet inte varför den krånglade.

Fick igång det med sdl också.

Underbart! Då kan man äntligen komma igång med lite kodande igen

Hade gött!

Mvh Jimmy

Citat:

Ursprungligen inskrivet av poppeman
Skumt. Testat att skippa SDL (dvs temporärt byta namn på katalogen) och bara kompilera något väldigt basic som använder opengl? Att ha opengl32.lib (och möjligen gl.h?) på flera ställen verkar otäckt.

En sak som slog mig just nu är att du kanske återanvänder ett riktigt gammalt workspace som har "fel" namn på externals (minns att man kan/kunde ställa in att det ska/skulle vara ett _ i början på dylika).

Kastar bara ur mig lite ideer nu; det kan ju hända att en rebuild löser biffen

Visa signatur

Är du snabbare än en gris? AnimalSpeeder ger dig svaret:
http://itunes.apple.com/se/app/animalspeeder/id551490974?l=en...