繁体   English   中英

当有来自 GLEW 库 (C++) 的任何函数时,程序将不会运行

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM