Comment puis-je résoudre " glew32.dll est absent de votre ordinateur de mon programme OpenGL?
Quand je suis en train de construire et de gérer mon OpenGL+GLEW+GLFW programme, elle construit très bien, mais l'habitude de l'exécuter, ce qui me donne cette erreur : "The program can't start because glew32.dll is missing from your computer. Try reinstalling the program to fix this problem."
Je suis un lien glew32.lib
comme une bibliothèque statique. Je suis également en utilisant #define GLEW_STATIC
.
Alors, pourquoi le programme à l'aide d'un fichier DLL?
#include <iostream>
//#define GLEW_STATIC
//GLEW
#include <include/GL/glew.h>
//GLFW
#include <include/GLFW/glfw3.h>
//we define GLEW_STATIC, since we’re using the static version of the GLEW library.
#define GLEW_STATIC
//Is called whenever a key is pressed/released via GLFW
void key_callback(GLFWwindow* window, int key, int scancode, int action, int mode)
{
std::cout << key << std::endl;
if (key == GLFW_KEY_ESCAPE && action == GLFW_PRESS)
{
//we close GLFW by setting its WindowShouldClose
//property to true.
glfwSetWindowShouldClose(window, GL_TRUE);
}
}
//Window dimensions
const GLuint WIDTH = 800, HEIGHT = 600;
//The MAIN function, from here we start the application and run the game loop
int main()
{
std::cout << "Starting GLFW context, OpenGL 3.3" << std::endl;
//Initializes GLFW
glfwInit();
//Set all the required options for GLFW
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
glfwWindowHint(GLFW_RESIZABLE, GL_FALSE);
//Create a GLFWwindow object that we can use for GLFW's functions
GLFWwindow * window = glfwCreateWindow(WIDTH, HEIGHT, "LearnOpenGL", nullptr, nullptr);
glfwMakeContextCurrent(window);
if (window == NULL)
{
std::cout << "Failed to create GLFW window" << std::endl;
glfwTerminate();
return -1;
}
//Set the required callback functions
glfwSetKeyCallback(window, key_callback);
//Set this to true so GLEW knows to use a modern approach to retrieving function pointers and extensions
glewExperimental = GL_TRUE;
//Initialize GLEW to setup the OpenGL Function pointers
if (glewInit() != GLEW_OK)
{
std::cout << "Failed to initialize GLEW" << std::endl;
return -1;
}
//Define the viewport dimensions
glViewport(0, 0, WIDTH, HEIGHT);
//Game loop
while (!glfwWindowShouldClose(window))
{
//Check if any events have been activiated (key pressed, mouse moved etc.) and call corresponding response functions
glfwPollEvents();
//Render
//Clear the colorbuffer
glClearColor(0.2f, 0.3f, 0.3f, 1.0f);
glClear(GL_COLOR_BUFFER_BIT);
//Swap the screen buffers
glfwSwapBuffers(window);
}
//Terminate GLFW, clearing any resources allocated by GLFW.
glfwTerminate();
return 0;
}
#définition de GLEW_STATIC après,#, y compris glew.h n'aurez pas aucun effet. Il n'ont de sens à l'intérieur de ce fichier.
OriginalL'auteur Johannes Eriksson Wallin | 2014-03-10
Vous devez vous connecter pour publier un commentaire.
C'est où vous êtes allé mal, glew32.lib est la bibliothèque d'importation pour la version de la DLL. Si vous ne voulez pas une dépendance glew32.dll ensuite, vous devez le lien le lien statique de la bibliothèque. Son nom est
glew32s.lib
. La définition de GLEW_STATIC sinon a aucun effet sur ce.Deviner comment cela aurait pu mal, méfiez-vous que les pré-construit binaires disponibles sur SourceForge seulement inclure glew32.lib. Vous aurez à construire glew32s.lib vous-même. Ce qui est en général assez difficile, il est très important que vous utilisez exactement la même version de compilateur et les options du compilateur que vous utilisez pour construire le reste de votre code. Lire le projet readme.txt fichier pour des instructions de compilation, je n'avais aucun problème que ce soit la construction avec MSVC à partir des fichiers de projet.
La liste complète des noms de bibliothèque:
Vous pouvez éventuellement aussi de renforcer la MX (plusieurs contexte de rendu) versions de ces bibliothèques, "mx" est ajouté à leurs noms.
OriginalL'auteur Hans Passant
Télécharger glew à partir d'ici http://glew.sourceforge.net/
Décompressez
Aller à glew-1.13.0\bin\Release\Win32 (glew-1.13.0 est un dossier de glew que vous venez de dézipper)
Il y a un fichier nommé "glew32.dll"
Copier "glew32.dll" le dossier de Débogage dans votre projet visual studio
C:\Users\Thien\Documents\Visual Studio 2015\Projets\your_project_name\Debug
Puis appuyez sur f5 pour exécuter
OriginalL'auteur Haha TTpro
glew32.dll n'est pas un standard de DLL. Il y a une forte probabilité que les autres programmes à l'aide soit de lier statiquement ou d'avoir la DLL installée à côté de l'exécutable. Je vous suggère de lien GLEW de manière statique à votre programme. Au http://glew.sourceforge.net/install.html il est documenté la façon de faire soit de manière statique ou dynamique liée construit.
OriginalL'auteur datenwolf
Vous pouvez télécharger et de mettre glew32.dll fichier dans le dossier où votre programme est installé ou le coller dans C:\WINDOWS
Le télécharger à partir de ce lien http://www.dll-files.com/dllindex/dll-files.shtml?glew32
OriginalL'auteur Shubham Gupta
Vous pouvez avoir à mettre le glew32.dll fichier dans le C:\Windows\System32 dossier.
OriginalL'auteur Abhishek Jain
OriginalL'auteur Shu Zhang