我在我的 c++ 项目中正确包含/使用 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
我不确定我的问题是否与我如何包含库、我如何使用它或我如何构建项目有关。谷歌没有给我任何关于该错误消息的点击,所以我想知道我是否在做一些根本错误的事情。建议将不胜感激。谢谢。