#include"header.h"
int main(){
function();
return 0;
}
以上是我的代码的简化形式。我在header.h文件中实现了function(),并将它放在与此code.c文件相同的目录中。
我听说过" gcc -c code.c"是"编译但没有链接"选项,但此代码需要与header.h文件链接。所以我猜-c选项会标记错误,而它没有。但是,如果没有-c选项,则会标记错误。任何人都可以解释这个-c选项是如何工作的吗?
答案 0 :(得分:6)
标题文件与链接无关。链接将多个目标文件和库组合成一个可执行文件。
头文件由编译器处理,作为生成目标文件的一部分。因此,gcc -c
将处理标头文件。
答案 1 :(得分:1)
gcc -c编译源文件而不进行链接。
头文件与链接过程无关,它们仅用于编译过程中告诉编译器各种声明和函数原型。
然而,在头文件中实现函数是不好的做法,在这种情况下编译策略都应该起作用。即带有和不带有c标志的gcc