[英]Program won't run when there's any function from the GLEW library (C++)
由于其他原因,我重新安装了 Windows,并且在设置了MinGWx64
(我选择的便携式编译器)后,它又恢复了,除了一个小问题; 我试图用OpenGL
(使用GLFW
)编译一个旧项目,它没有例外也没有错误; 但后来我试图运行代码,但我不能。 没有错误,没有等待,什么都没有,只是立即停止。 所以我做了一些测试,长话短说,它是GLEW
。 基本上,如果您从GLEW
调用任何函数,该程序将不会运行,无论它是从哪里调用的行,但之前编译时不会出现任何问题(我的意思是必须与库有关)。
这是一个简短的例子:
#include <iostream>
#include <GL/gl.h>
int main() {
std::cout << "works\n";
glfwInit();
return 0;
};
这有效,但现在当我添加一个glew函数时(那些变量将是值):
#include <iostream>
#include <GL/glew.h> //Included before (correctly)
#include <GL/gl.h>
int main() {
std::cout << "works\n";
glfwInit();
GLFWwindow* window = glfwCreateWindow((someresulution),(someresolution),(sometitle),NULL,NULL);
glfwMakeContextCurrent(window);
if (glewInit()!=GLEW_OK) std::cout << "glew not ok\n"; //HERE
return 0;
};
同样,它编译得很好,但程序不会做任何事情(即使函数调用低于“工作”日志,但它或“glew not ok”都不会被记录),只是立即退出。
这让我认为这与链接有关,也许它没有找到glew32.lib
,但我已经检查了所有文件都在正确的目录中,例如 4 次。 路径没问题,vscode 设置没问题(如果这有帮助的话),我就是想不通,因为这是我第一次遇到这样的事情。 如果有人知道解决方案或相关内容,我很乐意提供帮助,任何建议将不胜感激。 谢谢。
你定义GLEW_STATIC
静态版本或GLEW_BUILD
在你的程序DLL版本? 我猜不定义这些会在glew中产生编译错误
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.