C ++链接未定义的引用

时间:2017-02-13 11:38:54

标签: c++ linker undefined-reference

我正在开发一个开源项目:https://github.com/daniftodi/metal

我在holder / ArrayHolder.h中定义了ArrayHolder类,并在holder / ArrayHolder.cpp中实现

我的代码编译;但在我的main.cpp;我需要:

#include "holders/ArrayHolder.cpp"

如果我不这样做;我收到这个错误:

main.cpp.o:(.rodata._ZTV11ArrayHolderI8FunctionE[_ZTV11ArrayHolderI8FunctionE]+0x10): undefined reference to `ArrayHolder<Function>::put(Function*)

我不了解问题而无法找到解决方案。请帮帮我。

1 个答案:

答案 0 :(得分:1)

如果您使用模板;你需要在标题文件中定义它们;你不能像在普通方法或函数中那样在文件中定义它们。

请参阅此问题以获取进一步参考:Why can templates only be implemented in the header file?