cpr*_*100 -3 c linker compilation
例如,链接两个文件有什么区别
gcc -c func.c
gcc -c main.c
gcc func.o main.o -o main
Run Code Online (Sandbox Code Playgroud)
并使用头文件
#include func.h
int main{
....
..
}
Run Code Online (Sandbox Code Playgroud)
如果他们似乎完成了同一件事?
他们不会“完成同一件事”。他们完成同一件事的互补部分。通常,您必须同时做这两项:仅做一项或另一项是完全不够的。
这是一个不完美的类比:假设您想要在房子上加个东西。在项目开始时,您要与建筑商签订合同,指定添加的大小和完成的名称。在项目结束时,您在支票上签名,以支付建造者的工作费用。签合同和签支票有什么区别?如果两者都做同样的事情,那么为什么您必须同时做这两个事情,也就是让您成为新成员呢?
包含标头就像(签订合同)一样。当您说时#include <math.h>
,您说的是:“嘿,编译器,有一些数学函数sqrt()
。Like接受a double
并返回a double
。因此,如果我编写int x = sqrt(144)
,请确保在将数字传递int
给double
之前进行从到的转换sqrt
,并确保您可以先进行从double
到的转换,然后int
再将结果分配给x
。”
与图书馆建立链接就像(在某种程度上)支付账单一样。(实际上,老实说,这几乎不像是付账单,而是要忍受。)当您-lm
在命令行末尾时,您会说:“嘿,编译器,我们同意的那些数学函数,在合同中指定了详细信息<math.h>
的人,我一直在打电话的人,现在我要付钱,这就是这些功能的实际位置。”
归档时间: |
|
查看次数: |
63 次 |
最近记录: |