我正在尝试制作静态库来解决概率和统计数据。运行代码时出现 LNK2019 未解决的外部符号错误。我认为程序没有从 .cpp 文件中检测到函数的定义,我在这里没有得到问题。我也给出了图书馆的主要文件方向,所以那里没有问题。我是使用标题和模板的新手,所以请提供帮助。当程序调用对象的构造函数时会发生错误:
> LNK2019 unresolved external symbol "public: __thiscall ProbnStatslib::means<float>::means<float>(void)"(??0?$means@M@ProbnStatslib@@QAE@XZ) referenced in function_main
头文件:
// .h file
#ifndef PROBNSTATSLIB_H
#define PROBNSTATSLIB_H
#include<iostream>
#include<vector>
namespace ProbnStatslib
{
template<typename any>
class means
{
private:
std::vector<any> xi_mean;
int N;
public:
means();
void initializer(int size);
void CalcMean();
};
}
#endif
.cpp
// .cpp
#include<iostream>
#include"ProbnStatslib.h"
#include<vector>
using namespace std;
namespace ProbnStatslib
{
template<typename any>
means<any>::means()
{
cout << "object constructed" << endl;
cout << "Enter number of ouccrances:" << endl;
cin >> this->N;
initializer(this->N);
}
template<typename any>
void means<any>::initializer(int size)
{
cout << "Enter event values or Xi of size:"<< size << endl;
/*for (any value : xi_mean)
{
cin >> this->xi_mean;
}*/
}
template<typename any>
void means<any>::CalcMean() {
cout << "Calculating" << endl;
}
}
主文件:
#include <iostream>
#include <vector>
#include "ProbnStatslib.h"
using namespace std;
using namespace ProbnStatslib;
int main()
{
means<float> myobj;
return 0;
}