Определение функции шаблона должно быть inline в .h файле (вставьте код из code.cpp в code.h).
Ну, или в code.cpp файле добавьте куда-то строку
findViewById<WEngine::TextView*>;
Это все потому, что в C++ архаичная система хедеров. Когда компилится main.cpp, он не видит определения метода, только декларацию из code.h. Когда компилится code.cpp, он не знает, что main понадобится инстанциирование шаблона с каким-то типом. Поэтому не создает его. А потом линкер уже ругается, что не может найти функцию.