Estou aprendendo sobre vinculador e carregador de compilador e estava tentando entender o funcionamento do vinculador e carregador na minha máquina 12.04 do Ubuntu
Eu escrevi 2 arquivos simples ".c" da seguinte forma
test.c
#include<stdio.h>
int main(int argc, char **argv)
{
printf("%d",test_fun(10));
}
test2.c
#include<stdio.h>
int test_fun(int a)
{
return a*10;
}
Então eu executei seguindo os comandos
cc -c test.c
cc -c test2.c
ld test.o test2.o -o a.out -lc --entry main
Agora, no meu diretório atual, o arquivo a.out é gerado. Eu posso ver o arquivo quando digito ls
, mas quando tento executar o arquivo como
./a.out
Eu recebo erro
bash: ./a.out: No such file or directory
O que estou fazendo de errado? Por favor me ajude?