У меня возникают проблемы с включением/использованием математической библиотеки glm (http://glm.g-truc.net/) в моем проекте С++. Поскольку glm является библиотекой только для заголовков, я думал, что могу просто включить ее в эту строку:
#include "glm/glm.hpp"
Сначала это работало, так как я мог создавать и использовать матрицы и векторы. Однако, когда я попытался использовать функцию glm::translate(...)
, я получил эту ошибку:
error: ‘translate’ is not a member of ‘glm’
На веб-сайте GLM они рекомендуют включить библиотеку с треугольными скобками, например:
#include <glm/glm.hpp>
... но разве не правильно думать, что я могу включить его другим способом, учитывая, что он находится внутри структуры каталога проекта?
Я установил тест ниже, чтобы проиллюстрировать проблему, которую я испытываю. Папка glm
располагается рядом с файлом testglm.cpp
.
#include <iostream>
#include "glm/glm.hpp"
using namespace std;
int main(void) {
// works:
glm::mat4 testMatrix1 = glm::mat4(5.0f) * glm::mat4(2.0f);
cout << testMatrix1[0][0] << endl; // output: 10
// doesn't work - (error: ‘translate’ is not a member of ‘glm’):
glm::mat4 testMatrix2 = glm::translate(glm::mat4(1.0f), glm::vec3(1.0f));
}
Я строю этот тест с помощью этой команды сборки из терминала, в osx:
g++ -o bin/glm_test src/testglm.cpp
Я не уверен, связана ли моя проблема с тем, как я включаю библиотеку, как я ее использую или как я создаю проект. Google не дает мне никаких хитов для этого сообщения об ошибке, поэтому я задаюсь вопросом, не делаю ли я что-то принципиально неправильно. Совет будет высоко оценен. Спасибо.