我有一个非常基本的系统用于学习 C++ 模板。我的理解是应该在模板声明文件中包含模板定义并编译它而不是实现,如下所示:
/*LINKEDLIST.H*********************************/
#ifndef LINKEDLIST_H_
#define LINKEDLIST_H_
#include "node.h"
template <typename T>
class linkedlist {
/*..*/
};
#include "linkedlist.tpp"
/*LINKEDLIST.TPP*********************************/
#include "node.h"
template<typename T>
linkedlist<T>::linkedlist() {
/*..*/
}
如何让 Eclipse CDT 编译模板的头文件?它似乎试图自己编译模板文件并给我linker input file unused because linking not done
错误。
Building file: ../linkedlist.tpp
Invoking: GCC C++ Compiler
g++ -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"linkedlist.d" -MT"linkedlist.d" -o "linkedlist.o" "../linkedlist.tpp"
g++.exe: warning: ../linkedlist.tpp: linker input file unused
我可以编写自己的 makefile,但我很想看看 IDE 中是否有解决方案。