这是g ++的输入和产生的错误消息。
$ g++ main.cpp -o keyLogger
/tmp/ccvwRl3A.o:main.cpp:(.text+0x93): undefined reference to `SaveFeatures::SaveFeatures(std::string)'
/tmp/ccvwRl3A.o:main.cpp:(.text+0x93): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `SaveFeatures::SaveFeatures(std::string)'
/tmp/ccvwRl3A.o:main.cpp:(.text+0xbf): undefined reference to `SaveFeatures::save(std::string)'
/tmp/ccvwRl3A.o:main.cpp:(.text+0xbf): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `SaveFeatures::save(std::string)'
collect2: error: ld returned 1 exit status
我已经检查并重新检查了我的.h和.cpp for SaveFeatures类的语法但是却找不到错误。欢迎任何帮助。
Main.cpp的
#include <string>
#include "SaveFeatures.h"
using namespace std;
int main(){
string fileName="saveTest.text";
string saveContent="this is a test";
SaveFeatures saveFeatures(fileName);
saveFeatures.save(saveContent);
}
SaveFeature.cpp
#include "SaveFeatures.h"
#include <string>
using namespace std;
SaveFeatures::SaveFeatures(string fileName){
setFileName(fileName);
}
void SaveFeatures::setFileName(string fileName){
if(fileName!=NULL){
this.fileName=fileName;
}
}
bool SaveFeatures::save(string content){
if(fileName==NULL)return false;
if (content==NULL)return false;
FILE *file;
file=fopen(fileName,"a");
if(file!=NULL){
fputs(content,file);
}
return true;
}
string SaveFeatures::getFileName(){
return fileName;
}
SaveFeatures.h
#ifndef SAVEFEATURES_H
#define SAVEFEATURES_H
#include <string>
using namespace std;
class SaveFeatures{
public:
SaveFeatures(string fileName);
void setFileName(string fileName);
string getFileName();
bool save(string content);
private:
string fileName;
//need to make a method to determine if the fileName has file extension
};
#endif
感谢您对女士和男士的帮助
答案 0 :(得分:1)
您需要为可执行文件指定所有必需的源文件。
g++ main.cpp SaveFeature.cpp -o keyLogger