我有一个我无法理解的问题。我在eclipse 4.2中编写了一个c ++程序,我的程序在eclipse中编译并运行,但是当我试图在“终端”上编译时,它拒绝编译声称我没有声明构造函数和析构函数。
确切的错误消息是:
bin/Run.o: In function 'main':
/users...../src/Run.cpp:16: undefined reference to 'Linker::Linker()'
/users...../src/Run.cpp:17: undefined reference to 'Linker::start()'
/users...../src/Run.cpp:17: undefined reference to 'Linker::~Linker()'
/users...../src/Run.cpp:17: undefined reference to 'Linker::~Linker()'
collect2: error: Id returned 1 exit status
make:*** [RoadSimulator] Error 1
我的Run.cpp:
#include <studio.h>
#include <iostream>
#include "../include/Linker.h"
using namespace std;
int main(int argc, char *argv[]) {
Linker c;
c.start();
}
我只会写出我认为相关的部分。 我的Linker.h:
#ifndef LINKER_H_
#define LINKER_H_
#include<string>
#include <sstream>
#include <fstream>
#include "../include/Maker.h"
using namespace std;
class Linker {
public:
Linker();
~Linker();
void start();
private:
Maker c;
bool hadMove;
int eventIndex;
int commandIndex;
// i have more private function but it doesn't relevant
我的Linker.cpp: //我这里只写相关的鳕鱼:
#include "../include/Linker.h"
Linker::Linker() :time(1) , hadMove(false) , eventIndex(0) , commandIndex(0){}
Linker::~Linker(){}
void Linker::start(){
c.SetRoadMapJunctionMap();
c.readCommands();
c.readEvents();
.......}
我的makefile是一个大文件,如果有必要我会上传它。 谢谢你们。