【发布时间】:2018-01-22 02:35:39
【问题描述】:
我目前正在处理一个图形项目,并且遇到了一个问题。我有两个单独的 cpp 文件,它们都需要 glm gtx 扩展。问题是,当两个文件#include“glm/ext.hpp”时,我得到以下错误:“duplicate symbol glm::floor_log2(unsigned int)”。
我了解错误的含义以及导致错误的原因(每个编译单元都有自己的“glm::floor_log2(unsigned int)”函数版本),但我不明白如何解决它。这两个文件都需要访问 ext 标头,没有它就无法编译(尽管它们一起不会链接)。
如何正确编译和链接我的项目?
【问题讨论】:
-
在
.h文件中使用extern关键字。 -
把它们放在不同的命名空间...