web-dev-qa-db-ja.com

C ++がGLMヘッダーを見つけられないのはなぜですか?

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
11
Barney Chambers

GLMはOpenGLの一部ではありません。これは、GLSLとほとんど同じ構文を持つC++数学ライブラリです。これを使用するには、 ここ からダウンロードするか、パッケージマネージャーを使用してインストールする必要があります(ただし、このマシンに対する管理者権限がない場合は、それを行うことができません。 )。

それができたら、それをインクルードパスに追加する必要があります。

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

ただし、パッケージマネージャーを使用してインストールした場合は、おそらくシステムのインクルードパスになります。

13
Jherico

私の答えは作者の質問にはあまり関係していませんが、パッケージが不足しているubuntuからここに来た人のためにここに残しておきます

Sudo apt-get install libglm-dev
31
SerCe