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