gpt4 book ai didi

c++ - GLM 在声明后定义一个 vec3

转载 作者:太空宇宙 更新时间:2023-11-04 13:29:31 24 4
gpt4 key购买 nike

我正在尝试使用 OpenGL 编写程序。我正在使用仅包含 GLM header 的库来实现其 vector 和矩阵函数,但我遇到了一些非常奇怪的事情。

我有一个 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,如果这有什么不同的话。

最佳答案

我自己一直在玩这个。看来问题出在新版本的 GLM 上; 0.9.7.0。我将以前的每个版本下载回 0.9.5.4,但没有遇到这个问题。

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

关于c++ - GLM 在声明后定义一个 vec3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32083674/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com