2

まあ、タイトルがすべてを物語っています。リンク時に次のメッセージが表示されます(コンパイルは成功しました):

F:/Android/ndk/toolchains/arm-linux-androideabi-4.6/prebuilt/windows-x86_64/bin/ ../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld.ex e: ./obj/local/armeabi/objs/hellondk/Player/Renderer.o: in function Renderer::On SurfaceCreated():jni/Player/Renderer.cpp:63: error: undefined reference to 'void GameObject::test<void>()'

GameObject.h:

class GameObject
{
    public:
    ...
    template<typename T> T test();
}

ゲームオブジェクト.cpp:

template<typename T> T GameObject::test()
{

}

Renderer.cpp (テンプレートを使用):

object = new GameObject();
...
object->test<void>(); // error here
4

2 に答える 2

0

テンプレートを として宣言してtest()いますが、 という関数を呼び出そうとしていますtestas()。これはあなたの問題かもしれません。どこでtestas()定義されていますか?

于 2013-08-19T16:40:18.723 に答える