MinGW上的OpenGL链接器错误

时间:2012-10-22 10:30:54

标签: windows opengl g++ mingw linker-errors

我尝试在没有GLFW的情况下在Windows上初始化OpenGL ...她的一些相关代码:

#include <windows.h>
//...
  if(!(g_hDC = GetDC(hWnd)))
    return false;

  if(!(iPixelFormat = ChoosePixelFormat(g_hDC, &pfdPixelFormat)))
    return false;

  if(!SetPixelFormat(g_hDC, iPixelFormat, &pfdPixelFormat))
    return false;

  if(!(g_hRC = wglCreateContext(g_hDC)))
    return false;

  if(!wglMakeCurrent(g_hDC, g_hRC))
    return false;
//...

当我使用mingw32-g ++ -Wall -O2 -Wl编译时, - 子系​​统,windows -lopengl32 -mwindows Init.c我收到以下错误:

Temp\cclcIFFB.o:init.c:(.text+0x281): undefined reference to `_wglCreateContext@4'
Temp\cclcIFFB.o:init.c:(.text+0x2a0): undefined reference to `_wglMakeCurrent@8'
collect2.exe: error: ld returned 1 exit status

为什么这个链接器会出错?

2 个答案:

答案 0 :(得分:1)

尝试将Init.c 放在之前-lopengl32

mingw32-g++ -Wall -O2 Init.c -Wl,--subsystem,windows -lopengl32 -mwindows 

gcc可以挑剔参数定位。

答案 1 :(得分:0)

您必须将OpenGL链接器定义库opengl32.lib添加到要链接的库列表中。