我目前正在从事一个图形项目,并遇到了一个问题。我有两个单独的cpp文件,它们都需要gtx扩展。问题是,当两个文件#都包含"glm/ext.hpp“时,我会得到以下错误:”重复符号glm::floor_log2(无符号int)“。
我理解错误的含义,以及导致错误的原因(每个编译单元都有自己版本的“glm::floor_log2(无符号int)”函数),但我不知道如何绕过它。这两个文件都需要访问ext头,没有它就不会编译(虽然合并在一起,它们不会链接)。
如何正确地让我的项目编译和链接?
发布于 2013-10-19 03:09:24
据我所知,floor_log2是在integer.hpp (没有inline关键字)中声明的,定义为integer.inl (包括在integer.hpp中)。
它是glm源代码中的一个bug。
您应该将inline添加到integer.hpp中的声明中(这将解决您的问题),并通知glm开发人员他们有一个bug。
https://stackoverflow.com/questions/19453594
复制相似问题