编译步骤

时间:2019-07-22 15:16:00

标签: c gcc build linker

我试图按顺序编译简单的Hello World C程序。首先创建预处理文件,然后创建程序集文件,然后创建目标文件,最后调用链接器以创建ELF。

问题是我无法执行正在创建的ELF。

我尝试了以下步骤

while

在这一步,我得到了警告

gcc -E hello.c 1>hello.i

gcc -S hello.i

gcc -c hello.s

ld -o hello hello.o -lc

但是会创建一个名为hello的可执行文件。

当我尝试使用执行输出时

ld: warning: cannot find entry symbol _start; defaulting to 0000000000400260

我遇到了错误

./hello

// hello.c包含以下代码

bash: ./hello: No such file or directory

1 个答案:

答案 0 :(得分:1)

我建议您用gcc而不是ld链接目标文件(无论它们是如何生成的)。

gcc将使用适当的选项调用ld,因为它对源代码有更多了解,并将创建ld进行假设所需的任何内容。

相关问题