我知道,我已经问过这个问题,但是它被标记为重复,但是没有其他问题得到了对我有用的答案,所以我不得不再次问这个问题,因为在编辑了这个问题后,没有删除重复标记。
所以这是我的问题(再次):
我对Code::Blocks有问题。
我想尝试一些我学到的关于OpenGL的东西,并且由于某些原因,我想使用Code::Blocks来做。
但是每次我尝试链接库(GLEW)时,都无法编译我的代码。
obj\Debug\source\main.o:main.cpp:(.text+0x97): undefined reference to `ChoosePixelFormat@8'
obj\Debug\source\main.o:main.cpp:(.text+0xad): undefined reference to `SetPixelFormat@12'
obj\Debug\source\main.o:main.cpp:(.text+0xbb): undefined reference to `wglCreateContext@4'
obj\Debug\source\main.o:main.cpp:(.text+0xd0): undefined reference to `wglMakeCurrent@8'
obj\Debug\source\main.o:main.cpp:(.text+0xdf): undefined reference to `glMatrixMode@4'
obj\Debug\source\main.o:main.cpp:(.text+0xe7): undefined reference to `glLoadIdentity@0'
obj\Debug\source\main.o:main.cpp:(.text+0x103): undefined reference to `gluOrtho2D@32'
obj\Debug\source\main.o:main.cpp:(.text+0x112): undefined reference to `glMatrixMode@4'
obj\Debug\source\main.o:main.cpp:(.text+0x247): undefined reference to `GetStockObject@4'
obj\Debug\source\main.o:main.cpp:(.text+0x439): undefined reference to `GetStockObject@4'
obj\Debug\source\main.o:main.cpp:(.text+0x5b8): undefined reference to `wglMakeCurrent@8'
obj\Debug\source\main.o:main.cpp:(.text+0x5c6): undefined reference to `wglDeleteContext@4'
obj\Debug\source\main.o:main.cpp:(.text+0x64a): undefined reference to `wglMakeCurrent@8'
obj\Debug\source\main.o:main.cpp:(.text+0x65a): undefined reference to `wglDeleteContext@4'
obj\Debug\source\main.o:main.cpp:(.text+0x850): undefined reference to `glBegin@4'
obj\Debug\source\main.o:main.cpp:(.text+0x893): undefined reference to `glColor3ub@12'
obj\Debug\source\main.o:main.cpp:(.text+0x8a8): undefined reference to `glVertex2d@16'
obj\Debug\source\main.o:main.cpp:(.text+0x8b0): undefined reference to `glEnd@0'
我在代码顶部包括了GL / glew.h和GL / gl.h,链接器设置为:
1. ... \ glew \ lib \ Release \ x64 \ glew32s.lib
2. ... \ glew \ lib \ Release \ x64 \ glew32.lib
这是Build命令:
mingw32-g++.exe -LE:...\glew-1.13.0\include -o bin\Debug\TestProject.exe obj\Debug\source\main.o ...\glew-1.13.0\lib\Release\x64\glew32s.lib ...\glew-1.13.0\lib\Release\x64\glew32.lib "...\glew-1.13.0\lib\Release MX\x64\glew32mxs.lib" "...\glew-1.13.0\lib\Release MX\x64\glew32mx.lib"
我尝试了对先前问题的所有答案,但对我没有任何帮助...即使我不使用任何OpenGL函数,也会出现此错误。我知道这些错误是什么,并且如果它们来自我的代码,我会知道该怎么办,但是我现在不知道该怎么办。
请删除双引号,因为推荐问题的答案对我没有帮助。
我真的希望你能帮助我。
谢谢。
最佳答案
您是否在包含GLEW_STATIC
之前定义了GL/glew.h
?也可以转到编译器设置面板,并在其他选项中添加-DGLEW_STATIC
。
通过将glew32s
和opengl32
添加到链接器设置,确保正确链接了库。
关于c++ - GLEW库和代码::块,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33320741/