Opengl 代码::阻止对“的未定义引用”*&引用;

Opengl 代码::阻止对“的未定义引用”*&引用;,opengl,c++,ide,compilation,Opengl,C++,Ide,Compilation,正如标题所说,我在使用C::B时遇到了多个构建错误,都是未定义对“*”的引用。我正在尝试使用OpenGL、GLFW和GLEW构建一个程序。它每次都找不到的前三件事是\u imp__CreateDCW@16,\u imp__GetDeviceCaps@8,\u imp__DeleteDC@4。当我在互联网上查看时,我看到所有这些方法都在gdi32库中,我确保将其添加到链接器中。当我尝试使用GLFW3中的方法时,错误似乎就发生了。我尝试使用MinGW使用不同的GLFW构建,这就是我在Code::Bl

正如标题所说,我在使用C::B时遇到了多个构建错误,都是
未定义对“*”的引用
。我正在尝试使用OpenGL、GLFW和GLEW构建一个程序。它每次都找不到的前三件事是
\u imp__CreateDCW@16
\u imp__GetDeviceCaps@8
\u imp__DeleteDC@4
。当我在互联网上查看时,我看到所有这些方法都在
gdi32
库中,我确保将其添加到链接器中。当我尝试使用GLFW3中的方法时,错误似乎就发生了。我尝试使用MinGW使用不同的GLFW构建,这就是我在Code::Blocks中使用的,但是我无法消除错误

我正在Windows8.1上开发,使用代码::Blocks 13.12

以下是我链接的所有内容的列表,顺序相同:

  • gdi32
  • 内核32
  • 用户32
  • opengl32
  • glu32
  • glfw3

代码::Blocks有点麻烦,但我真的想开始习惯它。感谢所有能够提供帮助的人。

您必须通过
-lgdi32
才能让链接器知道您正在使用GDI函数。秩序也很重要。在使用MinGW 4.8.1工具链的Windows 8上,我给出以下信息:

  • 格洛
  • glfw3
  • opengl32
  • gdi32
这对我很有用;我不包括其他win32库。如果您正在使用GLEW的静态库,请确保在CB中或直接将
GLEW_static
定义为
-DGLEW_static


至于IDE,我选择了带有CMake的QtCreator,而没有Qt SDK。

谢谢!这似乎已修复了编译器错误,但现在当我尝试运行它时,出现以下错误:。此错误似乎来自于旧版本的GLEW或缺少的glew32.dll。我已尝试将glew32.dll放置在与可执行文件相同的位置,并尝试将系统文件夹中的glew32.dll替换为较新的,但此错误仍然存在。另外,你是我与之交谈过的第十位推荐QtCreator的人,所以我想我会看一看。这是因为你使用的是GLEW的动态库。将
glew32.dll
.exe
放在同一目录中。它应该解决这个问题。然而,如果您不想这样做,那么您必须使用GLEW的静态库;通常它的名称是
glews
glew32s
。如果要使用静态库,请确保定义了
GLEW\u static
。我试图将.dll放在同一目录中,但没有任何帮助。我只是决定静态链接,这就解决了问题,谢谢。