Я узнал о компоновщике и загрузчике компилятора и пытался понять, как работает компоновщик и загрузчик на моей машине с Ubuntu 12.04.
Я написал 2 простых файла .c следующим образом
. 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;
}
Затем я выполнил следующие команды
cc -c test.c
cc -c test2.c
ld test.o test2.o -o a.out -lc --entry main
Теперь в моем текущем каталоге генерируется файл a.out. Я вижу файл, когда набираю ls
, но когда я пытаюсь запустить файл как
./a.out
, я получаю сообщение об ошибке
bash: ./a.out: No such file or directory
Что я делаю не так? Пожалуйста, помогите мне?