• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

pem

Criar, Compilar e corre em Runtime

3 mensagens neste tópico

Boas, estou a fazer um trabalha e preciso de saber o sizeof de algumas estruturas defenidas num header a parte.

Para fazer isso a maneira que o professor disse foi criar um programa em runtime, compilar e correr.

O meu problema é que nao consigo compilar o codigo fonte em runtime, quer atravez do gcc que por makefile(a ultima hipotese preferia nao ter de user visto na pasta onde o programa vai correr ira existir o makefile do programa principal.

No caso de executar o make, diz make sem alvo.

No caso de executar o gcc aparece isto:

/usr/lib/gcc/i486-linux-gnu/4.1.2/../../../../lib/crt1.o: In function `_start':

(.text+0x18): undefined reference to `main'

collect2: ld returned 1 exit status

Alguem sabe o que estou a fazer mal, ou outra alternativa para fazer o sizeof das estruturas

Fica aqui o codigo usado,

#include<stdio.h>
#include<stdlib.h>



int main(){
int i;
int j;
FILE*  makefile;
FILE*  code;

code=fopen("teste.c","w");
if(code==NULL){
printf("erro ao criar o ficheiro makefile\n");
exit(1);
}

fprintf(code,"#include<stdio.h>");
fprintf(code,"\nint main(){\n");
fprintf(code,"FILE* wee;\nwee=fopen(\"wee\",\"w\");");

fprintf(code,"fprintf(wee,\"%%d\",sizeof(int));\n}");

makefile=fopen("makefile","w");
if(makefile==NULL){
printf("erro ao criar o ficheiro makefile\n");
exit(1);
}
//criação do makefile
fprintf(makefile,"all:\tteste\n\n");
fprintf(makefile,"teste:\tteste.c\n");
fprintf(makefile,"\t\tgcc -o teste teste.c");




//system("make");
//system("gcc -o teste teste.c");
system("teste");


}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

não sei se é isso, mas como não fechas os ficheiros nem fazes um fflush quando mandas correr o teste não deve estar lá nada.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Estranho mas era mesmo esse o problema.

Obrigado por me lembrares do fclose.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora