我正在用一个类main.c做一个项目,并使用makefile
进行编译Estado.h
#ifndef ESTADO_H
#define ESTADO_H
using namespace std;
#include <string>
class Estado
{
private:
int ident;
bool estInit;
bool estEnd;
public:
Estado();
virtual ~Estado();
Estado(int ident,bool inits,bool ends);
void setIdent(int id);
void setInitS(bool inits);
void setEndS(bool ends);
int getIdent();
bool getInitS();
bool getEndS();
};
#endif // TRANS_H
Estado.c
#include "Estado.h"
Estado::Estado(int ident,bool inits,bool ends)
{
this->ident=ident;
this->estInit=inits;
this->estEnd=ends;
}
void Estado::setIdent(int id){
ident=id;
}
void Estado::setInitS(bool inits){
estInit=inits;
}
void Estado::setEndS(bool ends){
estEnd=ends;
}
int Estado::getIdent(){
return ident;
}
bool Estado::getInitS(){
return estInit;
}
bool Estado::getEndS(){
return estEnd;
}
MAIN.C
#include <iostream>
#include <vector>
#include"Trans.h"
#include"Estado.h"
using namespace std;
int menu();
void cargarAutomata(int numEstados,int numTrans);
int main()
{
int numEstados,numTrans,opc;
cout<<"\t\t**************************************\t\t"<<endl;
cout<<"\t\t*INGRESO DE PARAMAETROS PARA LA TABLA*\t\t"<<endl;
cout<<"\t\t**************************************\t\t"<<endl;
cout<<"Indica la cantidad de estados"<<endl;
cin>>numEstados;
cout<<"Indica la cantidad de transiciones"<<endl;
cin>>numTrans;
cargarAutomata(numEstados,numTrans);
return 0;
}
void cargarAutomata(int numEstados,int numTrans){
vector<Estado> *states(numEstados,Estado());
}
生成文件
CC=g++ -c
LN=g++
Practica1: Estado.o Trans.o
$(LN) Estado.o Trans.o -o Practica1
transicion.o: Trans.c
$(CC) Trans.c Trans.o
est.o: Estado.c
$(CC) Estado.c Estado.o
出现以下错误
g ++ -o Practica1 Estado.o Trans.o
/usr/lib/gcc/i486-linux-gnu/4.4.5/../../../../lib/crt1.o:在函数_start':
(.text+0x18): undefined reference to
main'中
collect2:ld返回1退出状态
make: * [Practica1]错误1
答案 0 :(得分:0)
你从未实现过你的析构函数。将其添加到您的Estado.c文件中:
Estado::~Estado {
...
};
答案 1 :(得分:0)
看起来像你的makefile中的错误。请尝试以下制作。
CC=g++ -c
LN=g++
Practica1: Estado.o Trans.o main.o
$(LN) Estado.o Trans.o main.o -o Practica1
transicion.o: Trans.c
$(CC) Trans.c -o Trans.o
est.o: Estado.c
$(CC) Estado.c -o Estado.o
main.o: main.c
$(CC) main.c -o main.o