GLMをusr/local/includeまたはusr/includeに配置する権限がありませんが、openGLにGLMを使用する必要があります。コード(変更できません)は、次のようなGLMを探します。
#include <glm/glm.hpp>
#include <glm/gtc/matrix_transform.hpp>
#include <glm/gtc/type_ptr.hpp>
フォルダーglmは、このコードのソースである私のmain.cppと同じディレクトリにあります。組み込まれたヘッダーがあるusr/includeでglmを探しているため、機能していないと思います(私はredhat linuxを使用しています)
実行できないので、これを防ぐにはどうすればよいですか?
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
GLMはOpenGLの一部ではありません。これは、GLSLとほとんど同じ構文を持つC++数学ライブラリです。これを使用するには、 ここ からダウンロードするか、パッケージマネージャーを使用してインストールする必要があります(ただし、このマシンに対する管理者権限がない場合は、それを行うことができません。 )。
それができたら、それをインクルードパスに追加する必要があります。
g++ main.cpp -lGL -lglut -lGLEW -I/path/to/glm/headers
ただし、パッケージマネージャーを使用してインストールした場合は、おそらくシステムのインクルードパスになります。
私の答えは作者の質問にはあまり関係していませんが、パッケージが不足しているubuntuからここに来た人のためにここに残しておきます
Sudo apt-get install libglm-dev