我正在尝试用glew/glfw构建一个OpenGL应用程序。我下载了二进制文件,将它们放在文件夹的根目录中,将路径添加到include和lib目录,并告诉我的项目需要glew32。lib,GLFW。lib和opengl32。lib。
我甚至复制了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
您使用的是核心OpenGL版本3.3,因此必须指定您使用的是“新”API,以及GLEW术语中的“实验”API。在调用glewInit()之前添加此行;
glewExperimental=GL_TRUE;
这是我引擎的完整初始化代码。它适用于4.2,但也适用于您:
void Engine::InitWithGLFW(){
if(!glfwInit()){
exit(EXIT_FAILURE);
}
glfwOpenWindowHint(GLFW_OPENGL_VERSION_MAJOR, 4);
glfwOpenWindowHint(GLFW_OPENGL_VERSION_MINOR, 2);
//glfwOpenWindowHint(GLFW_OPENGL_FORWARD_COMPAT,GL_TRUE);
glfwOpenWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_COMPAT_PROFILE);
glfwOpenWindowHint(GLFW_FSAA_SAMPLES,4);
glfwDisable(GLFW_AUTO_POLL_EVENTS);
#ifdef DEBUG
glfwOpenWindowHint(GLFW_OPENGL_DEBUG_CONTEXT, GL_TRUE);
#endif
if(!glfwOpenWindow(_width,_height,8, 8, 8, 8, 24, 8,GLFW_WINDOW)){
glfwTerminate();
exit(EXIT_FAILURE);
}
glfwSetWindowTitle("XDEngine V-1.0");
InitGlew();
}
void Engine::InitGlew(){
glewExperimental=GL_TRUE;
GLenum err = glewInit();
if (GLEW_OK != err)
{
/* Problem: glewInit failed, something is seriously wrong. */
fprintf(stderr, "Error: %s\n", glewGetErrorString(err));
}
fprintf(stdout, "Status: Using GLEW %s\n", glewGetString(GLEW_VERSION));
glEnable (GL_BLEND);
glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glEnable(GL_MULTISAMPLE);
glEnable(GL_DEPTH_CLAMP);
glEnable(GL_CULL_FACE);
glCullFace(GL_BACK);
glfwSetWindowSizeCallback(Reshape);
}
如果glewInit()没有返回错误,则返回0。由于某种原因,返回的值与GLEW_OK比较不太好,但是如果值不是0,则存在错误。
if(glewInit()) {
//Handle Error
}
我知道这个答案来得有点晚,但我看不到您通过调用glfwMakeContextCurrent(window)
使OpenGL上下文成为当前上下文。在调用glewInit()
我有一个非常基本的OpenGL程序,使用glfw3进行窗口操作。 这里是我的主要: Utils: 输出: 我真的不知道我做错了什么。
我在Visual Studio 2010中启动了一个空项目并下载了最新版本的GLEW和GLFW。我相信我已经在项目中正确设置了它们 我可以通过glfwInit()正确初始化GLFW,并且可以打开一个窗口上下文。然而,当我试图通过glewInit()初始化GLEW时,我得到了一个入口点Not Found错误。 未找到入口点程序入口点_glewInit@0在动态链接库D:\Blah\Debug\Tes
在我尝试运行ionic cordova应用程序后,这个错误随机出现。这不仅发生在我一直在工作的分支上,也发生在我尝试运行的其他分支上,这让我相信这是我的机器的问题。我尝试重新启动并重新安装这些软件包,但问题仍未解决。
我试图使用argocd部署一个spring应用程序的Kubernetes集群,但我在其中遇到了错误。我首先使用GitLab ci管道构建docker映像,然后使用argocd进行连续部署。错误是: 我没有得到任何解决这个问题的方法,如果有人对此有任何想法,请回复。 这是我的配置文件: 这是我的申请。配置所有内容的yml文件。 谢谢
我是spring的初学者,希望这样做示例项目…我有一个数据库,我想连接到它…我使用了像AutoWired和service这样的注释。但有个问题我解决不了 Controller包中的RegisterationController具有我要调用的服务: 第一个包中的DataManagement类: 第一包中的StudentAccountRepository: 第一包中得学生帐户..引用数据库中的表: M
在运行mvn spring-boot:run命令时,我无法找出什么是错误的。mvn clean install使构建成功,但对于mvn spring-boot:run,我得到一个构建失败。这是运行mvn spring-boot时控制台中的错误日志:run-x。 这是我的pom.xml。我还从eclipse ide中的活动maven配置文件中删除了pom.xml,原因是它作为本链接中的解决方案之一给