1

Qt Creator 2.4.1 でプロジェクトをコンパイルしようとすると、異常なエラーが発生します。私のコードをリンクする必要があり、「「XXX」への未定義の参照」と表示されるまで、問題なくコンパイルされます。ここで、「XXX」は、問題なくコンパイルされたファイルであり、私が書いたので、機能がないように見えることがわかります存在を見つけます。以下に例を示します (説明が意味をなさない場合に備えて): `ESanity NSane::CSane::ArgumentCheck(int)' への未定義の参照

ここに私が書いてコンパイルしたコードがあります:

宣言(授業中)

template<typename Type> ESanity ArgumentCheck(Type aObj);

定義 (出典)

template<typename Type>
ESanity CSane::ArgumentCheck(Type aObj)
{
    assert(aObj != NULL);

    return aObj != NULL ? ESanity_Sane : ESanity_Insane;
}

Qt Creator (技術的には g++ だと思います。Qt Creator は単なる IDE だと思います) は、独自のコンパイル済みソースにリンクできないと言い、エラー ウィンドウでエラーをダブルクリックすると、ファイルが見つからないとも言います。開いて見えるのに。

注意: g++ 4.6.3 を使用して、Qt Creator 2.4.1 を使用して Xubuntu 12.04 LTS でコンパイルしています。

4

1 に答える 1

1

これはテンプレートコードです。定義を.cppに分割することはできません。すべてのコードを、1つのファイルに入れる必要があります。

于 2012-11-15T22:42:00.407 に答える