글쎄, 제목은 모든 것을 말합니다. 링크 할 때 나는이 메시지가 (컴파일이 성공) :링커에서 클래스에 선언 된 템플릿 함수를 찾지 못하는 이유는 무엇입니까?
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
헤더에 템플릿을 정의하지 않으려면 ** 실제로 ** 수행중인 작업과 그 의미를 알아야합니다. –