📅  最后修改于: 2023-12-03 15:36:28.112000             🧑  作者: Mango
在编写代码时,有时候我们需要将代码编译成对象文件,但是并不需要链接成可执行文件。例如,在大型项目中,为了加快编译速度,可以先编译每个源文件成对象文件,最后再链接成可执行文件。在这个过程中,使用 GCC 编译但不链接可以提高编译速度。
以下是一个简单的示例代码,包括两个源文件 main.c
和 hello.c
。我们需要将它们编译成对象文件,但是不需要链接成可执行文件。
// main.c
#include <stdio.h>
void hello(); // 函数声明
int main()
{
hello();
return 0;
}
// hello.c
#include <stdio.h>
void hello()
{
printf("Hello, world!\n");
}
使用 GCC 编译但不链接非常简单,只需要使用 -c
选项即可。下面是使用 GCC 编译 main.c
和 hello.c
的命令:
gcc -c main.c hello.c
这个命令会分别编译 main.c
和 hello.c
成 main.o
和 hello.o
两个对象文件,但是不会链接成可执行文件。注意,如果你需要链接这两个对象文件,你需要使用另一个命令来链接它们。
使用 GCC 编译但不链接可以加快编译速度,在大型项目中尤其有用。但是需要注意的是,编译后的对象文件不能独立运行,需要链接才能生成可执行文件。