Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/129.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ GLEW库类型_C++_Opengl_Mingw_Glew_Mingw W64 - Fatal编程技术网

C++ GLEW库类型

C++ GLEW库类型,c++,opengl,mingw,glew,mingw-w64,C++,Opengl,Mingw,Glew,Mingw W64,我刚刚成功地安装了OpenGL、GLFW3和GLEW,使用CMake构建和MinGW编译了各种库,最后(经过多次尝试和错误后)让我继续学习如何实际使用这些库 我遇到的最后一个问题是一个简单的“未定义的对`\u imp的引用”__glewInit@0“--这是我以前(在其他库中)见过很多次的东西,让我相信我没有将“libglew32.a”添加到MinGW的库文件夹中,或者可能需要将“-l glew32”添加到我的g++命令中。这两个都不是问题所在。然后我浏览了这个网站,寻找可能的解决方案,其中最有

我刚刚成功地安装了OpenGL、GLFW3和GLEW,使用CMake构建和MinGW编译了各种库,最后(经过多次尝试和错误后)让我继续学习如何实际使用这些库

我遇到的最后一个问题是一个简单的“未定义的对`\u imp的引用”__glewInit@0“--这是我以前(在其他库中)见过很多次的东西,让我相信我没有将“libglew32.a”添加到MinGW的库文件夹中,或者可能需要将“-l glew32”添加到我的g++命令中。这两个都不是问题所在。然后我浏览了这个网站,寻找可能的解决方案,其中最有希望的建议是在我调用“#include”之前添加“#define GLEW_STATIC”。这解决不了任何问题

我开始尝试随机的东西,我偶然发现的解决方案是使用“libglew32.dll.a”而不是“libglew32.a”。即使这样也没有找到我放在System32中的glew32.dll,因此我必须将glew32.dll放在SysWOW64或项目文件夹中才能找到它

这就给我留下了一些关于库和链接在C++/Windows中如何工作的问题,因为在这次减速之前,我认为我已经对这个过程有了相当好的理解:

  • 当我在MinGW的库文件夹中添加了“libglew32.a”并且在compile命令中添加了“-l glew32”时,为什么链接器无法找到glewInit()?这种组合适用于OpenGL、GLUT、GLFW、GLU、GLM等

  • 为什么链接器无法在System32中找到“glew32.dll”?这同样适用于我过去使用过的其他动态库


虽然这不是最紧迫的问题,但我确实希望对C++编译和链接工作以及如何使用各种类型的库有一个深刻的理解。我觉得更好地理解这种情况会有很大帮助。

System32
保留它的名称是因为传统的原因,但在64位系统上仅适用于64位二进制文件。当您在64位Windows上运行32位可执行文件时,您将在“模拟”环境中运行,
SysWOW64
映射到您将体验
System32
文件夹的位置。正如您所料,还有许多其他的变化。更多阅读@RichardCritten感谢您提供的信息和链接,很高兴知道。我甚至不知道我正在编译成一个32位的exe,所以我学到了两件事。我回头看了MinGW-w64的安装说明,结果发现“i686”体系结构对应32位,而“x86_64”对应64位。当时不知道这个,;重新安装。
System32
出于传统原因保留其名称,但在64位系统上仅适用于64位二进制文件。当您在64位Windows上运行32位可执行文件时,您将在“模拟”环境中运行,
SysWOW64
映射到您将体验
System32
文件夹的位置。正如您所料,还有许多其他的变化。更多阅读@RichardCritten感谢您提供的信息和链接,很高兴知道。我甚至不知道我正在编译成一个32位的exe,所以我学到了两件事。我回头看了MinGW-w64的安装说明,结果发现“i686”体系结构对应32位,而“x86_64”对应64位。当时不知道这个,;重新安装。