GLM在声明后定义vec3

时间:2015-08-18 22:33:16

标签: c++ opengl glm-math

我正在尝试使用OpenGL编写程序。我正在使用GLM头文件库来处理它的向量和矩阵函数,我遇到了一些非常奇怪的东西。

我有一个glm::vec3我想用作对象的位置,所以我在头文件(glm::vec3 position;)中声明它然后我想在对象构造函数中实际设置它(position = glm::vec3(0.0f, 0.0f, 0.0f))。当我尝试编译时,我得到 LNK2019 错误。

为了使诊断更容易,我测试了以下两段代码:

glm::vec3 position = glm::vec3(0.0f, 0.0f, 0.0f);

glm::vec3 position;
position = glm::vec3(0.0f, 0.0f, 0.0f);

第一个编译并运行绝对正常。

第二个得到LNK2019错误:

main.obj : error LNK2019: unresolved external symbol "public: struct
glm::tvec3<float,0> & __thiscall glm::tvec3<float,0>::operator=(struct 
glm::tvec3<float,0> const &)" (??4?$tvec3@M$0A@@glm@@QAEAAU01@ABU01@@Z) 
referenced in function _main

我可能遗漏了一些非常明显的东西,但我无法弄明白。我正在使用VS2010,如果这有任何区别。

1 个答案:

答案 0 :(得分:0)

我自己一直在玩这个。似乎问题出在新版GLM上; 0.9.7.0。我将以前的每个版本都下载回0.9.5.4并且没有遇到这个问题。

由于新版本在不到一个月前上传,我想我可以假设它存在某种错误。