OpenGL + GLEW + MinGW application linking issue

匿名 (未验证) 提交于 2019-12-03 01:35:01

问题:

I'm getting some undefined references when building my project. Here's the build log:

**** Build of configuration Debug for project test ****  **** Internal Builder is used for build               **** g++ -O0 -g3 -Wall -c -fmessage-length=0 -o src\main.o ..\src\main.cpp g++ -O0 -g3 -Wall -c -fmessage-length=0 -o src\test.o ..\src\test.cpp g++ -O0 -g3 -Wall -c -fmessage-length=0 -o src\window.o ..\src\window.cpp ..\src\window.cpp: In member function 'void Window::StartRenderContext()': ..\src\window.cpp:150:24: warning: NULL used in arithmetic ..\src\window.cpp:161:28: warning: NULL used in arithmetic ..\src\window.cpp:174:24: warning: NULL used in arithmetic g++ -mwindows -l glew32 -l glew32s -l glu32 -l opengl32 -o test.exe src\window.o src\test.o src\main.o src\window.o: In function `ZN6Window18StartRenderContextEv': C:\eclipse\workspace\test\Debug/../src/window.cpp:101: undefined reference to `wglCreateContext@4' C:\eclipse\workspace\test\Debug/../src/window.cpp:102: undefined reference to `wglMakeCurrent@8' C:\eclipse\workspace\test\Debug/../src/window.cpp:115: undefined reference to `glewInit' C:\eclipse\workspace\test\Debug/../src/window.cpp:125: undefined reference to `wglMakeCurrent@8' C:\eclipse\workspace\test\Debug/../src/window.cpp:126: undefined reference to `wglDeleteContext@4' C:\eclipse\workspace\test\Debug/../src/window.cpp:148: undefined reference to `__wglewChoosePixelFormatARB' C:\eclipse\workspace\test\Debug/../src/window.cpp:159: undefined reference to `__wglewChoosePixelFormatARB' C:\eclipse\workspace\test\Debug/../src/window.cpp:185: undefined reference to `__wglewCreateContextAttribsARB' C:\eclipse\workspace\test\Debug/../src/window.cpp:194: undefined reference to `__wglewCreateContextAttribsARB' C:\eclipse\workspace\test\Debug/../src/window.cpp:204: undefined reference to `__wglewCreateContextAttribsARB' C:\eclipse\workspace\test\Debug/../src/window.cpp:214: undefined reference to `__wglewCreateContextAttribsARB' C:\eclipse\workspace\test\Debug/../src/window.cpp:227: undefined reference to `wglMakeCurrent@8' collect2: ld returned 1 exit status Build error occurred, build is stopped Time consumed: 8128  ms.  

Here's my link command:

g++ -mwindows -l glew32 -l glew32s -l glu32 -l opengl32 -o test.exe src\window.o src\test.o src\main.o 

Is this correct? I'm using the 64-bit binaries of glew (I think the 32s don't mean anything). Were they only meant to be used with visual studio?

Here's the includes in my code:

#include "Windows.h" #include "GL/glew.h" #include "GL/wglew.h" #include "GL/gl.h" #include "GL/glu.h" #include "test.h" 

I am using Eclipse Indigo CDT, MinGW, Win32, OpenGL, and glew.

回答1:

I solved "glew undefined reference" problems.

My development environment is eclipse CDT with MinGW on Windows 7 (x64).

The solution is the following 3 steps:

  1. Add source code: #define GLEW_STATIC
  2. Add linker flag: -lglew32s -lopengl32 -lfreeglut
  3. Add compiling flag: gcc -DGLEW_STATIC

If needed, you have to add -lglu32 -glut32 etc.



标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!