[問題] 標準函式庫為什麼不用一起編譯?

作者: 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