2015-03-11 8 views
3

У меня нет разрешений на включение GLM в usr/local/include или usr/include, но мне нужно использовать GLM для openGL. Код (я не могу изменить) ищет GLM как это:Почему C++ не может найти заголовки GLM?

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

папка GLM находится в том же каталоге, что и мой main.cpp, когда этот код с. Я думаю, что это не работает, потому что он ищет GLM в USR/включать, где в застроенных заголовки (им с помощью 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 

ответ

8

GLM не является частью OpenGL. Это математическая библиотека C++, которая имеет тот же синтаксис, что и GLSL. Для его использования вам необходимо загрузить его с here или установить его с помощью диспетчера пакетов (хотя, если у вас нет прав администратора на этом компьютере, вы не сможете этого сделать).

После того, как вы есть, вы должны добавить его в свой путь включают:

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

Хотя, если вы установите его с помощью менеджера пакетов будет, вероятно, в конечном итоге в вашей системе включать путь.

+0

Спасибо за вашу помощь, я прочитал что, поскольку это просто файлы заголовков, установить ничего не стоит, это правда? Кроме того, я загрузил его, и он находится в той же папке, что и my main.cpp. что должен сказать мой аргумент? –

+0

@BarneyChambers Try '-I.' или' -I./Headers' – Amadeus

+0

Спасибо, Амадеус, это сработало. Все еще ошибка с моим openGL, но это большая помощь –

11

Мой ответ на самом деле не связано с вопросом автора, но я просто оставить его здесь для тех, кто приехал сюда из убунту с отсутствующим пакетом

sudo apt-get install libglm-dev 
+1

Ты наш герой: ха-ха: –

 Смежные вопросы

  • Нет связанных вопросов^_^