我試圖用glew/glfw構建一個OpenGL應用程序。我已經下載了二進制文件,將它們放在我的文件夾的根目錄下,將路徑添加到include和lib目錄,並告訴我的項目需要glew32.lib,GLFW.lib和opengl32.lib。glewInit()失敗,OpenGL應用程序
我甚至將glew32.lib複製到根目錄,因爲我的項目看不到它。
我必須保留項目目錄中的所有依賴項,因爲我將分發這個項目。我很茫然。
現在,當我運行我的程序,它無法在glewInit()
這是我的執行至今:
#include "Common.h"
GameEngine::GameEngine()
{
InitWithSize(1024, 768);
InitInput();
}
void GameEngine::InitWithSize(int _width, int _height)
{
try {
// Initialise GLFW
if(!glfwInit())
throw std::exception("Failed to initialize GLFW\n");
//glfwOpenWindowHint(GLFW_FSAA_SAMPLES, 4);
glfwOpenWindowHint(GLFW_OPENGL_VERSION_MAJOR, 3);
glfwOpenWindowHint(GLFW_OPENGL_VERSION_MINOR, 3);
glfwOpenWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
// Open a window and create its OpenGL context
if(!glfwOpenWindow(_width, _height, 0,0,0,0, 32,0, GLFW_WINDOW))
throw std::exception("Failed to initialize GLFW\n");
glfwSetWindowTitle("Tutorial 01");
// Initialize GLEW
if (glewInit() != GLEW_OK)
throw std::exception("Failed to initialize GLEW\n");
} catch (std::system_error const& err) {
fprintf(stdout, "System Error: %s", err.what());
glfwTerminate(); // Free glfw if it has been allocated
// Try Again
this->InitWithSize(_width, _height);
} catch(std::exception const& err) {
fprintf(stdout, "Exception Found: %s", err.what());
} catch (...) {
fprintf(stdout,"Unknown Exception Occurred\n");
}
}
void GameEngine::InitInput()
{
// Ensure we can capture the escape key being pressed below
glfwEnable(GLFW_STICKY_KEYS);
}
void GameEngine::StartGameLoop()
{
do{
// Draw nothing, see you in tutorial 2 !
// Swap buffers
glfwSwapBuffers();
} // Check if the ESC key was pressed or the window was closed
while(glfwGetKey(GLFW_KEY_ESC) != GLFW_PRESS &&
glfwGetWindowParam(GLFW_OPENED));
}
void GameEngine::InitTestData()
{
// An array of 3 vectors which represents 3 vertices
static const GLfloat g_vertex_buffer_data[] = {
-1.0f, -1.0f, 0.0f,
1.0f, -1.0f, 0.0f,
0.0f, 1.0f, 0.0f,
};
}
與我共用首:
#ifndef _COMMON_H
#define _COMMON_H
// OpenGL Libraries
#define GLEW_STATIC
//#pragma comment(lib, "glew32.lib")
#include <GL\glew.h>
#include <GL\glfw.h>
// Core Libraries
#include <Windows.h>
#include <stdio.h>
#include <stdlib.h>
#include <map>
#include <string>
#include <fstream>
// C++ 11 Libraries
#include <memory>
#include <exception>
#include <thread>
#include <chrono>
// Manager Classes
#include "ThreadManager.h"
#include "GameEngine.h"
#include "ShaderManager.h"
// Lesser Classes
#include "Shader.h"
#endif
之前這樣做也許把你的代碼?我沒有在該日誌中看到任何實際的錯誤,只是一個程序完成執行的通知。您可以忽略所有的PDB符號行。 – Tim
'glewInit()'實際上會返回一個錯誤代碼,您可以使用'glewGetErrorString'。請參閱http://glew.sourceforge.net/basic.html – Grimmy