我相信我做错了,因为我要做的只是编译opengl教程的教程4。我相信我会不断收到许多与GLM有关的错误,并且需要帮助修复它。
这是我尝试编译时收到的错误(我相信我也正确安装了所有其他内容):

规格是mingw 64,Windows 7,我知道glfw可以工作。不确定会出现问题,但是我看不到任何问题。我一遍又一遍地将它放在适当文件夹的glm头文件中。

C:\Users\Public\Documents\ACADEMICS\Personal Library\OpenGL-tutorial_v0014_33\Op
enGL-tutorial_v0014_33\tutorial04_colored_cube>g++ tutorial04.cpp -lmingw32 -lop
engl32 -lglew32 -lglu32 -lglfw3 -mwindows
In file included from c:\mingw64\bin\../lib/gcc/x86_64-w64-mingw32/4.7.0/../../.
./../x86_64-w64-mingw32/include/glm/gtc/matrix_transform.hpp:292:0,
                 from tutorial04.cpp:14:
c:\mingw64\bin\../lib/gcc/x86_64-w64-mingw32/4.7.0/../../../../x86_64-w64-mingw3
2/include/glm/gtc/matrix_transform.inl: In function 'glm::detail::tmat4x4<T, P>
glm::rotate(const glm::detail::tmat4x4<T, P>&, const T&, const glm::detail::tvec
3<T, P>&)':
c:\mingw64\bin\../lib/gcc/x86_64-w64-mingw32/4.7.0/../../../../x86_64-w64-mingw3
2/include/glm/gtc/matrix_transform.inl:79:165: note: #pragma message: GLM: rotat
e function taking degrees as a parameter is deprecated. #define GLM_FORCE_RADIAN
S before including GLM headers to remove this message.
c:\mingw64\bin\../lib/gcc/x86_64-w64-mingw32/4.7.0/../../../../x86_64-w64-mingw3
2/include/glm/gtc/matrix_transform.inl: In function 'glm::detail::tmat4x4<T, P>
glm::rotate_slow(const glm::detail::tmat4x4<T, P>&, const T&, const glm::detail:
:tvec3<T, P>&)':
c:\mingw64\bin\../lib/gcc/x86_64-w64-mingw32/4.7.0/../../../../x86_64-w64-mingw3
2/include/glm/gtc/matrix_transform.inl:120:170: note: #pragma message: GLM: rota
te_slow function taking degrees as a parameter is deprecated. #define GLM_FORCE_
RADIANS before including GLM headers to remove this message.
c:\mingw64\bin\../lib/gcc/x86_64-w64-mingw32/4.7.0/../../../../x86_64-w64-mingw3
2/include/glm/gtc/matrix_transform.inl: In function 'glm::detail::tmat4x4<T, (gl
m::precision)0u> glm::perspective(const valType&, const valType&, const valType&
, const valType&)':
c:\mingw64\bin\../lib/gcc/x86_64-w64-mingw32/4.7.0/../../../../x86_64-w64-mingw3
2/include/glm/gtc/matrix_transform.inl:253:170: note: #pragma message: GLM: pers
pective function taking degrees as a parameter is deprecated. #define GLM_FORCE_
RADIANS before including GLM headers to remove this message.
c:\mingw64\bin\../lib/gcc/x86_64-w64-mingw32/4.7.0/../../../../x86_64-w64-mingw3
2/include/glm/gtc/matrix_transform.inl: In function 'glm::detail::tmat4x4<T, (gl
m::precision)0u> glm::perspectiveFov(const valType&, const valType&, const valTy
pe&, const valType&, const valType&)':
c:\mingw64\bin\../lib/gcc/x86_64-w64-mingw32/4.7.0/../../../../x86_64-w64-mingw3
2/include/glm/gtc/matrix_transform.inl:285:173: note: #pragma message: GLM: pers
pectiveFov function taking degrees as a parameter is deprecated. #define GLM_FOR
CE_RADIANS before including GLM headers to remove this message.
c:\mingw64\bin\../lib/gcc/x86_64-w64-mingw32/4.7.0/../../../../x86_64-w64-mingw3
2/include/glm/gtc/matrix_transform.inl: In function 'glm::detail::tmat4x4<T, (gl
m::precision)0u> glm::infinitePerspective(T, T, T)':
c:\mingw64\bin\../lib/gcc/x86_64-w64-mingw32/4.7.0/../../../../x86_64-w64-mingw3
2/include/glm/gtc/matrix_transform.inl:311:178: note: #pragma message: GLM: infi
nitePerspective function taking degrees as a parameter is deprecated. #define GL
M_FORCE_RADIANS before including GLM headers to remove this message.
c:\mingw64\bin\../lib/gcc/x86_64-w64-mingw32/4.7.0/../../../../x86_64-w64-mingw3
2/include/glm/gtc/matrix_transform.inl: In function 'glm::detail::tmat4x4<T, (gl
m::precision)0u> glm::tweakedInfinitePerspective(T, T, T)':
c:\mingw64\bin\../lib/gcc/x86_64-w64-mingw32/4.7.0/../../../../x86_64-w64-mingw3
2/include/glm/gtc/matrix_transform.inl:339:185: note: #pragma message: GLM: twea
kedInfinitePerspective function taking degrees as a parameter is deprecated. #de
fine GLM_FORCE_RADIANS before including GLM headers to remove this message.
C:\Users\Richard\AppData\Local\Temp\ccuc6Ups.o:tutorial04.cpp:(.text+0x28c): und
efined reference to `LoadShaders(char const*, char const*)'
c:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.7.0/../../../../x86_64-w64-mingw3
2/lib/../lib/libglfw3.a(context.c.obj):context.c:(.text+0x3c): undefined referen
ce to `glGetString'
c:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.7.0/../../../../x86_64-w64-mingw3
2/lib/../lib/libglfw3.a(context.c.obj):context.c:(.text+0xab): undefined referen
ce to `glGetIntegerv'
c:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.7.0/../../../../x86_64-w64-mingw3
2/lib/../lib/libglfw3.a(context.c.obj):context.c:(.text+0x5c6): undefined refere
nce to `glGetString'
c:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.7.0/../../../../x86_64-w64-mingw3
2/lib/../lib/libglfw3.a(context.c.obj):context.c:(.text+0x710): undefined refere
nce to `glGetIntegerv'
c:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.7.0/../../../../x86_64-w64-mingw3
2/lib/../lib/libglfw3.a(context.c.obj):context.c:(.text+0x74e): undefined refere
nce to `glGetIntegerv'
c:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.7.0/../../../../x86_64-w64-mingw3
2/lib/../lib/libglfw3.a(context.c.obj):context.c:(.text+0x7e2): undefined refere
nce to `glGetIntegerv'
c:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.7.0/../../../../x86_64-w64-mingw3
2/lib/../lib/libglfw3.a(wgl_context.c.obj):wgl_context.c:(.text+0xa51): undefine
d reference to `__imp_wglMakeCurrent'
c:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.7.0/../../../../x86_64-w64-mingw3
2/lib/../lib/libglfw3.a(wgl_context.c.obj):wgl_context.c:(.text+0xadd): undefine
d reference to `__imp_wglGetProcAddress'
c:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.7.0/../../../../x86_64-w64-mingw3
2/lib/../lib/libglfw3.a(wgl_context.c.obj):wgl_context.c:(.text+0xf33): undefine
d reference to `__imp_wglCreateContext'
c:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.7.0/../../../../x86_64-w64-mingw3
2/lib/../lib/libglfw3.a(wgl_context.c.obj):wgl_context.c:(.text+0xf5d): undefine
d reference to `__imp_wglShareLists'
c:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.7.0/../../../../x86_64-w64-mingw3
2/lib/../lib/libglfw3.a(wgl_context.c.obj):wgl_context.c:(.text+0x1186): undefin
ed reference to `__imp_wglDeleteContext'
c:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.7.0/../../../../x86_64-w64-mingw3
2/lib/../lib/libglfw3.a(wgl_context.c.obj):wgl_context.c:(.text+0x12fd): undefin
ed reference to `__imp_wglMakeCurrent'
c:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.7.0/../../../../x86_64-w64-mingw3
2/lib/../lib/libglfw3.a(wgl_context.c.obj):wgl_context.c:(.text+0x1326): undefin
ed reference to `__imp_wglMakeCurrent'
c:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.7.0/../../../../x86_64-w64-mingw3
2/lib/../lib/libglfw3.a(wgl_context.c.obj):wgl_context.c:(.text+0x143a): undefin
ed reference to `__imp_wglGetProcAddress'
collect2.exe: error: ld returned 1 exit status

C:\Users\Public\Documents\ACADEMICS\Personal Library\OpenGL-tutorial_v0014_33\Op
enGL-tutorial_v0014_33\tutorial04_colored_cube>

最佳答案

如输出所示,添加“#define GLM_FORCE_RADIANS”以删除glm警告消息,但这似乎只是一个警告。

问题出在GLFW中。尝试在-lglfw3之后移动-lopengl32和-lglu32。
另外,我曾经在构建一些教程(可能与您相同)时遇到麻烦,因为它们使用的是GLFW的不同版本。尝试与GLFW2链接。

关于c++ - 安装GLM-MinGW 64,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21814476/

10-13 03:54