[问题] 标准函式库为什么不用一起编译?

楼主: wong0101 (wong0101)   2015-07-19 22:22:36
想请问板上的大大一个问题
我现在有3个档案
a.h
a.c (a.h的实作档)
main.c (有a.h中的function)
在compile时输入
gcc a.c main.c 时可以成功编译
但想请问在用标准函式库(例:math.h)时,
为什么都不用特别去一同编译math.c档?
linker是怎么找到里面的math.h里的实作档的呢?
不知道大家是否看得懂0.0,小弟先谢谢各位了
作者: tinlans ( )   2015-07-19 22:24:00
预先编译在 libc.so 了,gcc 会自动连结所以你看不到。
楼主: wong0101 (wong0101)   2015-07-19 22:34:00
感谢楼上!!
作者: tjjh89017 (伊达政宗)   2015-07-19 22:34:00
gcc会帮你把libc当作默认使用lib丢给Linker
作者: LPH66 (-6.2598534e+18f)   2015-07-20 01:35:00
参考 #1Juz_tgy 另外<math.h>的东西会在另一包 libm.so 里至于为什么会在另一包就是历史因素了
作者: shadow0326 (非议)   2015-07-20 10:58:00
math.h就是新人最容易编(连)不过的库 lol

Links booklink

Contact Us: admin [ a t ] ucptt.com