2013-10-18 57 views
0

我目前正在研究一個圖形項目,並且遇到了一個問題。我有兩個單獨的cpp文件,都需要glm gtx擴展名。問題是,當兩個文件#include「glm/ext.hpp」時,我得到以下錯誤:「重複符號glm :: floor_log2(unsigned int)」。我知道錯誤的含義是什麼,它是什麼造成的(每個編譯單元都有自己版本的「glm :: floor_log2(unsigned int)」函數),但我不明白如何繞過它。這兩個文件都需要訪問ext頭文件,並且在沒有它的情況下不會編譯(儘管一起,它們不會鏈接)。如何修復導入gl文件中的'重複符號'glm

我該如何正確地讓我的項目編譯和鏈接?

+0

在'.h'文件中使用'extern'關鍵字。 – nhgrif

+0

將它們放在不同的名稱空間中... – nitish712

回答

1

據我所知,該floor_log2integer.hpp(無inline關鍵字)聲明,並且在integer.inl定義(包括來自integer.hpp)。

這是glm源文件中的一個錯誤。

您應該將inline添加到integer.hpp(它可以解決您的問題)中的聲明中,並通知glm開發人員他們有一個錯誤。