我对C ++编程还很陌生,这说明我在理解编译和链接的工作原理方面存在一些基本问题。这是我的最低示例: 我有三个文件a.hpp,a.cpp和b.cpp。
a.hpp:
namespace A {
template<typename T>
double helpA(T t1,T t2);
}
a.cpp:
#include "a.hpp"
namespace A {
template<typename T>
double helpA(T t1, T t2){
return(t1 +t2);
}
}
b.cpp(主)
#include <iostream>
#include "a.hpp"
int main (int argc, char *argv[]){
double t = A::helpA(1.0,2.3);
std::cout << t << "\n";
}
当我现在尝试通过调用来编译Thing
g++ b.cpp a.cpp
我收到以下错误:
b.cpp:(.text+0x24): undefined reference to `double A::helpA<double>(double, double)'
collect2: error: ld returned 1 exit status
所有帮助都应征