📜  使用 gcc 编译但不链接 (1)

📅  最后修改于: 2023-12-03 15:36:28.112000             🧑  作者: Mango

使用 GCC 编译但不链接

在编写代码时,有时候我们需要将代码编译成对象文件,但是并不需要链接成可执行文件。例如,在大型项目中,为了加快编译速度,可以先编译每个源文件成对象文件,最后再链接成可执行文件。在这个过程中,使用 GCC 编译但不链接可以提高编译速度。

示例代码

以下是一个简单的示例代码,包括两个源文件 main.chello.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 编译但不链接

使用 GCC 编译但不链接非常简单,只需要使用 -c 选项即可。下面是使用 GCC 编译 main.chello.c 的命令:

gcc -c main.c hello.c

这个命令会分别编译 main.chello.cmain.ohello.o 两个对象文件,但是不会链接成可执行文件。注意,如果你需要链接这两个对象文件,你需要使用另一个命令来链接它们。

总结

使用 GCC 编译但不链接可以加快编译速度,在大型项目中尤其有用。但是需要注意的是,编译后的对象文件不能独立运行,需要链接才能生成可执行文件。