main.c
和comp.c
的程序。
main.c
#include <stdio.h>
extern int secure_func(int, int);
void main()
{
printf("hello, world\n");
int result = secure_func(1, 1);
}
comp.c
int secure_func(int text, int key)
{
return text * key * key;
}
首先,我直接使用gcc编译程序并运行可执行文件,这很好。
然后我尝试使用工具链逐步构建程序,就像这样。gcc -o main main.c comp.c ./main hello, world
生成了一个名为gcc -c -o comp.o comp.c gcc -c -o main.o main.c ld -o main main.o comp.o -lc --entry main
main
的文件。但是如果我尝试运行它,会显示错误。
可执行文件具有X权限。bash: ./main: No such file or directory
列表信息。
> ~/test/segtest2$ ls -l
> total 24
> -rw-rw-r-- 1 kail kail 88 Sep 28 21:20 comp.c
> -rw-rw-r-- 1 kail kail 37 Sep 28 21:20 comp.h
> -rw-rw-r-- 1 kail kail 1248 Sep 28 21:22 comp.o
> -rwxrwxr-x 1 kail kail 3241 Sep 28 21:22 main
> -rwxrwxr-- 1 kail kail 137 Sep 28 21:20 main.c
> -rw-rw-r-- 1 kail kail 1568 Sep 28 21:21 main.o
我有什么遗漏吗?欢迎任何建议。谢谢!
gcc -v
命令来查看 gcc 编译程序时所调用的命令。 - fuzstrace ./main
的输出吗? - fuz