PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : glew & glfw einbinden



CreativeFrags
27.02.2012, 16:52
Hallo liebe C++ Coder.

Ich lerne seit einigen Tagen nun C++ und nutze den "Microsoft Visual C++ 2010 Express" Compiler,
Seit heute dachte ich mir versuche ich mich an OpenGL, habe mir einige Tutorials dazu angeguckt und ein ziemlich gutes gefunden welches mit
"Glew" (http://glew.sourceforge.net/) und "Glfw" (http://www.glfw.org/) funktioniert.
Nur kriege ich die Biblotheken anscheinend nicht ordentlich eingebunden, ich habe keine Syntaxmarkierungen also sollten die stimmen..

kriege folgenden Fehler beim Debuggen:


1>------ Erstellen gestartet: Projekt: OpenGL - NEU, Konfiguration: Debug Win32 ------
1> main.cpp
1>main.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_glfwSwapBuffers" in Funktion "_main".
1>main.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_glfwGetWindowParam" in Funktion "_main".
1>main.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_glfwSetWindowTitle" in Funktion "_main".
1>main.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_glfwOpenWindow" in Funktion "_main".
1>main.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_glfwOpenWindowHint" in Funktion "_main".
1>main.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_glfwInit" in Funktion "_main".
1>c:\Users\XXXXXXXX\Documents\Visual Studio 2010\Projects\OpenGL - NEU\Debug\OpenGL - NEU.exe : fatal error LNK1120: 6 nicht aufgelöste externe Verweise.
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========
hoffe auf schnelle hilfe, bin heiß drauf :p



EDIT
Ok das Problem hab ich behoben bekommen...
nun hab ich allerdings folgendes problem das er das hier macht:


"OpenGL - NEU.exe": "C:\Users\USERNAME\Documents\Visual Studio 2010\Projects\OpenGL - NEU\Debug\OpenGL - NEU.exe" geladen, Symbole wurden geladen.
"OpenGL - NEU.exe": "C:\Windows\System32\ntdll.dll" geladen, Cannot find or open the PDB file
"OpenGL - NEU.exe": "C:\Windows\System32\kernel32.dll" geladen, Cannot find or open the PDB file
"OpenGL - NEU.exe": "C:\Windows\System32\KernelBase.dll" geladen, Cannot find or open the PDB file
"OpenGL - NEU.exe": "C:\Windows\System32\glew32.dll" geladen, Die Binärdaten wurden nicht mit Debuginformationen erstellt.
"OpenGL - NEU.exe": "C:\Windows\System32\opengl32.dll" geladen, Cannot find or open the PDB file
"OpenGL - NEU.exe": "C:\Windows\System32\msvcrt.dll" geladen, Cannot find or open the PDB file
"OpenGL - NEU.exe": "C:\Windows\System32\advapi32.dll" geladen, Cannot find or open the PDB file
"OpenGL - NEU.exe": "C:\Windows\System32\sechost.dll" geladen, Cannot find or open the PDB file
"OpenGL - NEU.exe": "C:\Windows\System32\rpcrt4.dll" geladen, Cannot find or open the PDB file
"OpenGL - NEU.exe": "C:\Windows\System32\gdi32.dll" geladen, Cannot find or open the PDB file
"OpenGL - NEU.exe": "C:\Windows\System32\user32.dll" geladen, Cannot find or open the PDB file
"OpenGL - NEU.exe": "C:\Windows\System32\lpk.dll" geladen, Cannot find or open the PDB file
"OpenGL - NEU.exe": "C:\Windows\System32\usp10.dll" geladen, Cannot find or open the PDB file
"OpenGL - NEU.exe": "C:\Windows\System32\glu32.dll" geladen, Cannot find or open the PDB file
"OpenGL - NEU.exe": "C:\Windows\System32\ddraw.dll" geladen, Cannot find or open the PDB file
"OpenGL - NEU.exe": "C:\Windows\System32\dciman32.dll" geladen, Cannot find or open the PDB file
"OpenGL - NEU.exe": "C:\Windows\System32\setupapi.dll" geladen, Cannot find or open the PDB file
"OpenGL - NEU.exe": "C:\Windows\System32\cfgmgr32.dll" geladen, Cannot find or open the PDB file
"OpenGL - NEU.exe": "C:\Windows\System32\oleaut32.dll" geladen, Cannot find or open the PDB file
"OpenGL - NEU.exe": "C:\Windows\System32\ole32.dll" geladen, Cannot find or open the PDB file
"OpenGL - NEU.exe": "C:\Windows\System32\devobj.dll" geladen, Cannot find or open the PDB file
"OpenGL - NEU.exe": "C:\Windows\System32\dwmapi.dll" geladen, Cannot find or open the PDB file
"OpenGL - NEU.exe": "C:\Windows\System32\msvcp100d.dll" geladen, Symbole wurden geladen.
"OpenGL - NEU.exe": "C:\Windows\System32\msvcr100d.dll" geladen, Symbole wurden geladen.
"OpenGL - NEU.exe": "C:\Windows\System32\imm32.dll" geladen, Cannot find or open the PDB file
"OpenGL - NEU.exe": "C:\Windows\System32\msctf.dll" geladen, Cannot find or open the PDB file
"OpenGL - NEU.exe": "C:\Windows\System32\nvinit.dll" geladen, Cannot find or open the PDB file
"OpenGL - NEU.exe": "C:\Windows\System32\uxtheme.dll" geladen, Cannot find or open the PDB file
"OpenGL - NEU.exe": "C:\Windows\System32\winmm.dll" geladen, Cannot find or open the PDB file
"OpenGL - NEU.exe": "C:\Users\Hannes\AppData\Local\FLVService\lib\FLVSr vLib.dll" geladen, Die Binärdaten wurden nicht mit Debuginformationen erstellt.
"OpenGL - NEU.exe": "C:\Windows\System32\shell32.dll" geladen, Cannot find or open the PDB file
"OpenGL - NEU.exe": "C:\Windows\System32\shlwapi.dll" geladen, Cannot find or open the PDB file
"OpenGL - NEU.exe": "C:\Windows\winsxs\x86_microsoft.vc90.crt_1fc8b3b9a 1e18e3b_9.0.30729.6161_none_50934f2ebcb7eb57\msvcr 90.dll" geladen, Cannot find or open the PDB file
"OpenGL - NEU.exe": "C:\Windows\System32\cryptbase.dll" geladen, Cannot find or open the PDB file
"OpenGL - NEU.exe": "C:\Windows\System32\ig4icd32.dll" geladen, Cannot find or open the PDB file
"OpenGL - NEU.exe": "C:\Windows\System32\winmm.dll" entladen.
Das Programm "[6592] OpenGL - NEU.exe: Systemeigen" wurde mit Code 1 (0x1) beendet.
Resultat: das OpenGl window ist ganz kurz einmal da und gleich wieder weg.... ://



mein source:


#define GLEW_NO_GLU
#define GLFW_NO_GLU
#include <GL/glew.h>
#include <GL/glfw.h>
#include <iostream>
using namespace std;

int main()
{
if(glfwInit() == GL_FALSE)
{
cerr<<"GLFW FAIL";
return 1;
}

glfwOpenWindowHint(GLFW_OPENGL_VERSION_MAJOR, 3);
glfwOpenWindowHint(GLFW_OPENGL_VERSION_MINOR, 3);
glfwOpenWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
glfwOpenWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE);

if(glfwOpenWindow(800,600,0,0,0,8,8,8,GLFW_WINDOW) == GL_FALSE)
{
cerr<<"OPEN WINDOW FAIL";
return 1;
}
glfwSetWindowTitle("OpenGL - NEU");

if(glewInit() != GLEW_OK)
{
cerr<<"GLEW FAIL";
return 1;
}

GLchar* vertexshadersrc="#version 330\n"
"in vec4 position;"
"void main()"
"{"
"gl_Position=position;"
"}";

GLchar* fragmentshadersrc="#version 330\n"
"out vec4 color;"
"void main()"
"{"
"color=vec4(1.0f,0.0f,0.0f,1.0f);"
"}";

GLuint vertexshader = glCreateShader(GL_VERTEX_SHADER);
glShaderSource(vertexshader, 1, (const GLchar**)&vertexshadersrc, 0);
glCompileShader(vertexshader);

GLint compile_ok;
GLint errlength;
GLchar* errmsg;
glGetShaderiv(vertexshader, GL_COMPILE_STATUS, &compile_ok);
if(compile_ok == GL_FALSE)
{
glGetShaderiv(vertexshader, GL_INFO_LOG_LENGTH, &errlength);
errmsg = new GLchar[errlength];
glGetShaderInfoLog(vertexshader, errlength, &errlength, errmsg);
cerr<<errmsg;
return 1;
}

GLint fragmentshader = glCreateShader(GL_FRAGMENT_SHADER);
glShaderSource(fragmentshader, 1, (const GLchar**)&fragmentshadersrc, 0);
glCompileShader(fragmentshader);
glGetShaderiv(fragmentshader,GL_COMPILE_STATUS, &compile_ok);
if(compile_ok == GL_FALSE)
{
glGetShaderiv(fragmentshader, GL_INFO_LOG_LENGTH, &errlength);
errmsg = new GLchar[errlength];
glGetShaderInfoLog(fragmentshader, errlength, &errlength, errmsg);
cerr<<errmsg;
return 1;
}

GLuint programm = glCreateProgram();
glAttachShader(programm, vertexshader);
glAttachShader(programm, fragmentshader);
glLinkProgram(programm);
glDeleteShader(vertexshader);
glDeleteShader(fragmentshader);

GLfloat vertex[]=
{
-0.7f,-0.5f,0.0f,
0.7f,-0.5f,0.0f,
0.0f, 0.5f,0.0f
};

GLuint vertexbuffer;
glGenBuffers(1, &vertexbuffer);
glBindBuffer(GL_ARRAY_BUFFER, vertexbuffer);
glBufferData(GL_ARRAY_BUFFER, sizeof(vertex), vertex, GL_STATIC_DRAW);

GLuint position = glGetAttribLocation(programm, "position");
glVertexAttribPointer(position, 3, GL_FLOAT, GL_FALSE, sizeof(GLfloat)*3, (void*)0);
glUseProgram(programm);
glEnableVertexAttribArray(position);

while(glfwGetWindowParam(GLFW_OPENED))
{
glClear(GL_COLOR_BUFFER_BIT);
glDrawArrays(GL_TRIANGLES, 0, 3);
glfwSwapBuffers();
}
}




greez
CreativeFrags

SleiZer
28.02.2012, 23:58
Wo in deinem Programm wirste denn rausgeworfen?
Haste es mal durch den debugger laufen lassen und
breakpoints gesetzt?

CreativeFrags
29.02.2012, 08:34
sofort beim initialisieren komischerweise, die fenster blinken nur kurz auf und dann is ende...

und ne , hab ich nicht, da ich wenn ich ehrlich bin keine ahnung hab wo genau ich sie setzten sollte... das witzige is ja auch wenn ich 1, 2 sachen änder, dann geht es zwar, aber dafür zeichnet er nix sprich es funzt auch nich....

bin da echt nach und nach am verzweifeln -.-