为什么C++找不到GLM头文件?

qgelzfjb  于 2023-06-07  发布在  其他
关注(0)|答案(2)|浏览(318)

我没有权限将GLM放入usr/local/include或usr/include中,但我需要将GLM用于openGL。代码(我无法更改)如下查找GLM:

#include <glm/glm.hpp>
#include <glm/gtc/matrix_transform.hpp>
#include <glm/gtc/type_ptr.hpp>

文件夹glm与我的main.cpp在同一个目录中,这段代码来自于此目录。我认为它不工作,因为它在usr/include中寻找GLM,而在构建头文件的位置(我使用RedhatLinux)
既然我不能运行,我如何阻止这种情况发生:

g++ main.cpp -lGL -lglut -lGLEW

没有这些错误:

main.cpp:46:23: error: glm/glm.hpp: No such file or directory
main.cpp:47:40: error: glm/gtc/matrix_transform.hpp: No such file or directory
main.cpp:48:32: error: glm/gtc/type_ptr.hpp: No such file or directory
main.cpp:62: error: ‘glm’ has not been declared
main.cpp:62: error: expected constructor, destructor, or type conversion before ‘cameraMatrix’
main.cpp: In function ‘int setShaderData(const unsigned int&)’:
main.cpp:102: error: ‘glm’ has not been declared
main.cpp:102: error: expected ‘;’ before ‘projection’
main.cpp:105: error: ‘glm’ has not been declared
main.cpp:105: error: ‘projection’ was not declared in this scope
main.cpp:109: error: ‘glm’ has not been declared
main.cpp:109: error: expected ‘;’ before ‘modelview’
main.cpp: In function ‘void render()’:
main.cpp:187: error: ‘cameraMatrix’ was not declared in this scope
main.cpp:187: error: ‘glm’ has not been declared
main.cpp:200: error: ‘glm’ has not been declared
w6lpcovy

w6lpcovy1#

我的回答与作者的问题没有太大关系,但我只是把它留给那些从ubuntu带着丢失的软件包来到这里的人

sudo apt-get install libglm-dev
ar7v8xwq

ar7v8xwq2#

GLM不属于OpenGL。它是一个C++数学库,与GLSL有很多相同的语法。为了使用它,你需要从here下载它,或者使用你的包管理器安装它(尽管如果你没有这台机器的管理权限,那么你就不能这样做)。
一旦你有了它,你需要将它添加到你的包含路径:

g++ main.cpp -lGL -lglut -lGLEW -I/path/to/glm/headers

尽管如果你用包管理器安装它,它可能会在你的系统包含路径中结束。

相关问题