我知道,我已经问过这个问题,但它被标记为重复,但没有其他问题得到答案,答案对我有用,所以我不得不再次提出这个问题,因为重复的标志没有删除在我编辑了这个问题之后。
所以这是我的问题(再次):
我对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函数我也会得到这个错误。我知道这些错误是什么,并且知道如果它们来自我的代码我应该怎么做,但我现在不知道该怎么做。
请删除双后符号,因为推荐问题的答案对我没用。
我真的希望你能帮助我。 谢谢。
答案 0 :(得分:0)
在包含GLEW_STATIC
之前,您是否定义了GL/glew.h
?另请转到编译器设置面板,并添加-DGLEW_STATIC
。
确保通过将glew32s
和opengl32
添加到链接器设置来正确链接lib。