我一直在努力讓我的一個舊專案運行起來,它使用了一些 OpenGL 代碼。我無法生成有效的可執行檔案。所發生的只是通過呼叫glfwInit(), 是一個分段錯誤:

我最好的猜測是它以某種方式不使用/找到我正在嘗試使用的 glfw dll。
讓我解釋一下我當前的設定:
我已經使用 msys2 安裝了 glfw:
pacman -S mingw-w64-x86_64-glfw我創建了一個 glad 頭檔案和源檔案
我寫了一個簡單的 cmake 檔案(2 年前也用過)
cmake_minimum_required(VERSION 3.23) project(2DGameEngine) find_package(glfw3 3.3 REQUIRED) find_package(OpenGL REQUIRED) set(CMAKE_CXX_STANDARD 23) file(GLOB_RECURSE SRCS src/*.cpp src/*.c) add_executable(2DGameEngine ${SRCS}) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Wshadow") target_link_libraries(2DGameEngine glfw) target_link_libraries(2DGameEngine OpenGL::GL)我使用了我能找到的最簡單的例子:
#include "glad.h" #include <GLFW/glfw3.h> #include <iostream> int main() { // glfw: initialize and configure // ------------------------------ if(!glfwInit()){ std::cout << "error" << std::endl; exit(1); } return 0; }
然而,我無法在呼叫時擺脫分段錯誤glfwInit()。我認為它與一些.dll缺失有關,但我不知道如何檢查它。我很高興得到任何幫助。
uj5u.com熱心網友回復:
0xc0000135dll是您的 Windows 作業系統在執行您的程式時找不到所需的錯誤。這里有一個方便的網站可以解碼這些型別的錯誤:https ://james.darpinian.com/decoder/?q=0xc0000135
使用此程式:https ://github.com/lucasg/Dependencies找出找不到的 dll,然后將其dll放在與可執行檔案相同的檔案夾中,或編輯作業系統PATH環境變數以包含包含該 dll 的檔案夾。
這是一篇關于如何設定作業系統PATH環境變數的好文章:https ://www.computerhope.com/issues/ch000549.htm
此 Microsoft 檔案中包含其他幾個選項,這些選項解釋了您的作業系統如何以及在何處搜索 dll:https ://learn.microsoft.com/en-us/windows/win32/dlls/dynamic-link-library-search-order #search-order-for-desktop-applications
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/535456.html
標籤:C 视窗分段故障glfw
上一篇:C 向量不保存物件的父物件
下一篇:如何在Eigen中創建對角矩陣
