我想我已经接近了,但我遇到了这个错误,我已经把头撞在墙上好几个小时了。我错过了一些愚蠢的东西,我已经逐个字符地走了,但我找不到它。
编译器给了我
main.cpp:16: undefined reference to `translator::translator(std::istream&)'
collect2: error: ld returned 1 exit status
当我尝试编译我的程序时。我用来编译的命令是:
clear && g++ -g -Wall main.cpp -o Pear
三个部分的使用如下:
主文件
int main(int argc, char* argv[])
{
std::ifstream myFile;
myFile.open(argv[1]);
translator example(myFile);
myFile.close();
return 0;
}
翻译器.cpp
#include <fstream>
#include <iostream>
#include <string>
#include "translator.h"
translator::translator(std::istream& in)
{
table1(in);
table2(in);
}
翻译器.h
#ifndef TRANSLATOR
#define TRANSLATOR
#include <fstream>
#include <iostream>
#include <string>
#include "translationTable.h"
class translator
{
private:
translationTable<std::string, int> table1;
translationTable<int, std::string> table2;
translator();
public:
translator(std::istream& in);
};
#endif
有任何想法吗?我已经尝试了很多,并且我查找了类似的问题,但它们都有不同的来源。提前致谢!