0

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

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

我该如何正确地让我的项目编译和链接?

4

1 回答 1

1

据我所知,floor_log2integer.hpp(不带inline关键字)中声明,并在integer.inl(包括从integer.hpp)中定义。

这是glm源代码中的错误。

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

于 2013-10-19T03:09:24.503 回答