我正在使用 GCC 编译器和 Geany(Arch Linux,如果它有所作为)学习 C。但是,我在 Geany 和 Internet 上看到 compile 和 build 这两个词可以互换使用。我要求澄清我理解编译过程的方式是正确的,因为谷歌搜索只会让我更加困惑。
假设我写了一个简单的 helloworld.c 文件:
#include <stdio.h>
int main(void)
{
printf("Hello world!");
return 0;
}
如果我运行gcc -c helloworld.c
,编译器会生成一个 helloworld.o 目标文件。Geany将此过程称为编译,编译器说Compilation finished successfully.
现在,如果我运行gcc -o helloworld helloworld.c
,编译器会生成一个名为的可执行文件helloworld
,Geany 将其称为building。但是,编译器再次说Compilation finished successfully.
我知道 -c 选项会生成一个目标文件,并且其中的多个可以与库链接在一起以生成可执行文件,但我对哪个场景是编译以及哪个场景正在构建感到困惑。
此外,如果我在项目中只有一个源文件,例如单个 helloworld.c 文件,是否gcc -o helloworld helloworld.c
足以将源代码转换为可执行文件?
谢谢