C++ 链接未定义的引用
C++ linking undefined reference
我正在做一个开源项目:https://github.com/daniftodi/metal
我在 holders/ArrayHolder.h 中定义了 ArrayHolder class 并在 holders/ArrayHolder.cpp
中实现
我的代码可以编译;但在我的 main.cpp 中;我需要:
#include "holders/ArrayHolder.cpp"
如果我不这样做;我收到此错误:
main.cpp.o:(.rodata._ZTV11ArrayHolderI8FunctionE[_ZTV11ArrayHolderI8FunctionE]+0x10): undefined reference to `ArrayHolder<Function>::put(Function*)
我不明白问题,也找不到解决方案。请帮助我。
如果您使用模板;您需要在 header 文件中定义它们;您不能像使用普通方法或函数那样在 source 文件中定义它们。
请参阅此问题以进一步参考:Why can templates only be implemented in the header file?
我正在做一个开源项目:https://github.com/daniftodi/metal
我在 holders/ArrayHolder.h 中定义了 ArrayHolder class 并在 holders/ArrayHolder.cpp
中实现我的代码可以编译;但在我的 main.cpp 中;我需要:
#include "holders/ArrayHolder.cpp"
如果我不这样做;我收到此错误:
main.cpp.o:(.rodata._ZTV11ArrayHolderI8FunctionE[_ZTV11ArrayHolderI8FunctionE]+0x10): undefined reference to `ArrayHolder<Function>::put(Function*)
我不明白问题,也找不到解决方案。请帮助我。
如果您使用模板;您需要在 header 文件中定义它们;您不能像使用普通方法或函数那样在 source 文件中定义它们。
请参阅此问题以进一步参考:Why can templates only be implemented in the header file?