如何修复在glm中导入h文件的“重复符号”

时间:2013-10-18 15:39:05

标签: c++ linker glm-math

我目前正在开发一个图形项目,并遇到了一个问题。我有两个单独的cpp文件,都需要glm gtx扩展。问题是,当两个文件#include“glm / ext.hpp”时,我收到以下错误:“重复符号glm :: floor_log2(unsigned int)”。

我理解错误的含义,以及导致它的原因(每个编译单元都有自己版本的“glm :: floor_log2(unsigned int)”函数),但我不明白如何解决它。这两个文件都需要访问ext头,如果没有它就不会编译(虽然它们一起不会链接)。

如何正确地将项目编译和链接?

1 个答案:

答案 0 :(得分:1)

据我所知,floor_log2integer.hpp(没有inline个关键字)中声明,并在integer.inl中定义(包含在integer.hpp中)。

这是glm来源中的错误。

您应该将inline添加到integer.hpp中的声明中(这将解决您的问题)并通知glm开发人员他们有错误。