0

私は現在グラフィックプロジェクトに取り組んでおり、問題に遭遇しました。glm gtx 拡張機能を必要とする 2 つの個別の cpp ファイルがあります。問題は、両方のファイルに "glm/ext.hpp" が #include されている場合、次のエラーが発生することです: "duplicate symbol glm::floor_log2(unsigned int)".

エラーの意味とその原因 (各コンパイル ユニットには独自のバージョンの "glm::floor_log2(unsigned int)" 関数があります) は理解していますが、それを回避する方法がわかりません。どちらのファイルも ext ヘッダーへのアクセスを必要とし、ext ヘッダーなしではコンパイルできません (ただし、一緒にするとリンクしません)。

プロジェクトを正しくコンパイルおよびリンクするにはどうすればよいですか?

4

1 に答える 1

1

私が知る限り、は (キーワードなしで)floor_log2で宣言され、 (から含まれる) で定義されています。integer.hppinlineinteger.inlinteger.hpp

glmソースのバグです。

inlineの宣言に追加してinteger.hpp(問題を修正します)、開発者にglmバグがあることを通知する必要があります。

于 2013-10-19T03:09:24.503 に答える