我一直试图让我的一个老项目工作,它使用一些OpenGL代码。我无法产生一个工作的可执行文件。所有发生的是,只是通过调用glfwInit()
,是一个分段错误:
我最好的猜测是,它不知何故没有使用/找到我试图使用的glfwdll。
让我来解释一下我的当前设置:
1.我已经使用msys 2安装了glfw:
pacman -S mingw-w64-x86_64-glfw
1.我已经创建了一个很好的头文件和源文件
1.我写了一个简单的cmake-file(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)
1.我用了我能找到的最简单的例子:
#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
丢失有关,但我不知道如何检查它。我很高兴得到任何帮助。
1条答案
按热度按时间xurqigkl1#
0xc0000135
是Windows操作系统在执行程序时找不到所需的dll
时出现的错误。这里有一个方便的站点可以解码这些类型的错误:https://james.darpinian.com/decoder/?q=0xc0000135使用此程序:https://github.com/lucasg/Dependencies以找出无法找到的dll,然后将
dll
与可执行文件放在同一文件夹中,或者编辑OSPATH
环境变量以包含包含该dll的文件夹。下面是一篇关于如何设置OS
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