【发布时间】:2013-08-19 16:35:34
【问题描述】:
嗯,标题说明了一切。链接时收到此消息(编译成功):
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();
}
GameObject.cpp:
template<typename T> T GameObject::test()
{
}
Renderer.cpp(使用模板):
object = new GameObject();
...
object->test<void>(); // error here
【问题讨论】:
-
不要再...在标题中定义模板,除非您真的知道自己在做什么及其含义。
标签: c++ templates c++11 linker android-ndk