[CUDA C] OpenGL Error Symbols missing , CUDA 5.0

Mr.Seymour Buds

Commodore
Registriert
Feb. 2012
Beiträge
4.380
Hallo,

ich bekomme 6 Compiler Errors. Ich habe leider keine Ahnung, wie ich diese Fehler beheben soll:

kernel.cu.obj : error LNK2001: Nicht aufgelöstes externes Symbol "__imp____glewBufferData".
1>kernel.cu.obj : error LNK2001: Nicht aufgelöstes externes Symbol "__imp____glewBindBuffer".
1>kernel.cu.obj : error LNK2001: Nicht aufgelöstes externes Symbol "__imp____glewGenBuffers".
1>kernel.cu.obj : error LNK2001: Nicht aufgelöstes externes Symbol "__imp__glewIsSupported".
1>kernel.cu.obj : error LNK2001: Nicht aufgelöstes externes Symbol "__imp__glewGetErrorString".
1>kernel.cu.obj : error LNK2001: Nicht aufgelöstes externes Symbol "__imp__glewInit".

Glew ist ein Teil vom OpenGL GLUT Utility Library, das ich mir geladen habe. Ich bin leider kein Experte für OpenGL. Kann mir jemand sagen, wie ich diese Symbole in meine IDE bzw. mit CUDA verknüpfen oder einbauen kann???

Als IDE benutze ich Microsoft Visual Studio 2010 und CUDA ist die aktuelle Version 5.0 auf einer Nvidia GT 610....
 
Mein erster Gedanke wäre, dass du nicht gegen die .lib davon gelinkt hast. Falls das der Fall sein könnte, geh mal in die Projekteigenschaften und da irgendwo die Linker-Settings suchen und die .lib, die mitgeliefert wird, eintragen.
 
@Nai: Ich habe "Glew - The OpenGL Extension Wrangler Library" geladen. Siehe hier: http://glew.sourceforge.net/

@mental.dIseASe: Danke für die Antwort. Das war die Lösung. Ich habs vor einigen Minuten durch probieren rausgefunden, dann hab ich den Thread hier aktualisiert... ^^

Allerdings habe ich nun ein neues Problem:

"the procedure entry point glewissupported could not be located in the dynamic link library glew32.dll"...

Ich habe das auch mal im Nvidia CUDA Forum gepostet, siehe hier https://devtalk.nvidia.com/default/topic/525782/cuda-programming-and-performance/missing-symbols-from-opengl-glut-utility-library-compiler-error/

Kann mir jemand sagen, wie ich diesen .dll entry-point error erschlagen kann?????

Danke für Eure schnellen Antworten! Ihr seit viel fixer, als das Nvidia DeveloperForum ^^ hehe


edit: Zu "Glew", diese Seite hat mir auch weitergeholfen: http://3dgep.com/?p=2415#Using_GLEW
 
Zuletzt bearbeitet:
Wenn das Problem erst kommt, wenn du deine .exe da starten willst, dann google mal nach "dependency walker" und steck da mal deine .exe rein. Das zeigt dir alle DLLs an, die beim Programmstart geladen werden, glaube ich. Ich vermute, dass du irgendwo in der DLL-Hell steckst, dass du also irgendeine ältere DLL hast, die irgendwo irgendwie nicht passt.

Hast du GLEW selbst gebaut oder dir diese precompiled binaries geholt? Falls letzteres der Fall ist, könntest du noch probieren, ob es nicht doch bei selbstgebauter DLL funktioniert.

Sind eigentlich nur Idiotentips, die man überall bekommt, aber vielleicht klappts ja. :)
 
Wenn das Problem erst kommt, wenn du deine .exe da starten willst...

Ne, der Error kommt vorher. Also wenn ich den Compiler starte und die Release Version erstellen möchte. Eine exe. Datei ist zu dem Zeitpunkt noch nicht vorhanden. :(

Hast du GLEW selbst gebaut oder dir diese precompiled binaries geholt?

Ich habe aus der oben genannten Quelle die precompiled binaries genutzt.

Falls letzteres der Fall ist, könntest du noch probieren, ob es nicht doch bei selbstgebauter DLL funktioniert.

Dummerweise hab ich keine Ahnung, wie das gehen soll....

Trotzdem Danke für die Tipps. Ich bin für jede Hilfe dankbar!
 
Dann schau mal, dass du dir den Source laedst, und dann wie in der README beschrieben vorgehst: in \build\vc10\ ist eine .sln. Die öffnest du mal und machst Rechtsklick auf die Projekte "glew_static" und "glew_shared" und jeweils "Erstellen". Vorher vielleicht noch auf "Release" umstellen.
 


Hab ich gemacht und das kam dabei heraus...Allerdings ist mir nicht genau klar, was diese neuen Dateien nun sollen.
 
Naja, im \bin-Ordner müsste jetzt eine glew32.dll und im \lib-Ordner eine glew32.lib sein, zumindest ist es bei mir so. Wenn du gegen diese neue .lib linkst, funktioniert es dann vielleicht?
 
@mental.dIseASe

Ne, sorry es funktioniert einfach nicht. Ich werde den OpenGL Teil meiner Anwendung erstmal "links" liegen lassen, denn ich habe noch andere Sachen zum Programmieren und ich muss vorankommen. Ich werde hier aber schreiben, wenn ich eine Lösung für diese OpenGL Errors gefunden habe.
 
Zurück
Oben