MinGW应用程序链接问题

MinGW应用程序链接问题

本文介绍了OpenGL + GLEW + MinGW应用程序链接问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在构建项目时,我得到了一些未定义的引用.这是构建日志:

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.

这是我的链接命令:

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

这是正确的吗?我正在使用glew的64位二进制文​​件(我认为32位二进制文​​件没有任何意义).他们只是打算与Visual Studio一起使用吗?

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"

我正在使用Eclipse Indigo CDT,MinGW,Win32,OpenGL和glew.

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

推荐答案

我解决了切换未定义引用"问题.

I solved "glew undefined reference" problems.

我的开发环境是Windows 7(x64)上的带有MinGW的Eclipse CDT.

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

解决方案包括以下3个步骤:

The solution is the following 3 steps:

  1. 添加源代码:#define GLEW_STATIC
  2. 添加链接器标志:-lglew32s -lopengl32 -lfreeglut
  3. 添加编译标志:gcc -DGLEW_STATIC
  1. Add source code: #define GLEW_STATIC
  2. Add linker flag: -lglew32s -lopengl32 -lfreeglut
  3. Add compiling flag: gcc -DGLEW_STATIC

如果需要,您必须添加-lglu32 -glut32等.

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

这篇关于OpenGL + GLEW + MinGW应用程序链接问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-05 01:31