gcc -c选项如何工作?

时间:2015-04-02 04:06:17

标签: c gcc

#include"header.h"

int main(){

    function();
    return 0;
}

以上是我的代码的简化形式。我在header.h文件中实现了function(),并将它放在与此code.c文件相同的目录中。

我听说过" gcc -c code.c"是"编译但没有链接"选项,但此代码需要与header.h文件链接。所以我猜-c选项会标记错误,而它没有。但是,如果没有-c选项,则会标记错误。任何人都可以解释这个-c选项是如何工作的吗?

2 个答案:

答案 0 :(得分:6)

标题文件与链接无关。链接将多个目标文件和库组合成一个可执行文件。

头文件由编译器处理,作为生成目标文件的一部分。因此,gcc -c将处理标头文件。

答案 1 :(得分:1)

gcc -c编译源文件而不进行链接。

头文件与链接过程无关,它们仅用于编译过程中告诉编译器各种声明和函数原型。

然而,在头文件中实现函数是不好的做法,在这种情况下编译策略都应该起作用。即带有和不带有c标志的gcc