私はいくつかのファイルから動的ライブラリを作成する(他の誰かの)コードに取り組んでいます。 ファイル "MyStaticVector.h"には、固定(テンプレート化)された長さの静的ベクトルの定義/実装が含まれています。リンカーエラー。構造体の静的変数が見つかりません
これはライブラリ(Windowsでは.dll、Linuxでは.so)にコンパイルされます。コンパイル/リンクは正常に実行されます。
MyStaticVector.h:
----------------
template< unsigned VectorLength >
struct MyStaticVector
{
static const unsigned uNumberOfElements = VectorLength;
MyStaticVector()
{
}
}
私の問題は、これはMSVC11/debug + releaseとGCC/releaseで動作するということです。しかし、GCC/debugを使用すると、実行時にエラーが発生し、、 "uNumberOfElements"のシンボルが見つかりません。あなたは説明することができます、なぜですか?
gccのどのバージョンですか?どのコンパイラフラグ? –