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