簡體   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