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

看板C_and_CPP (C/C++)作者 (wong0101)時間10年前 (2015/07/19 22:22), 編輯推噓2(204)
留言6則, 5人參與, 最新討論串1/1
想請問板上的大大一個問題 我現在有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,小弟先謝謝各位了 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.228.32.3 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1437315758.A.452.html

07/19 22:24, , 1F
預先編譯在 libc.so 了,gcc 會自動連結所以你看不到。
07/19 22:24, 1F

07/19 22:34, , 2F
感謝樓上!!
07/19 22:34, 2F

07/19 22:34, , 3F
gcc會幫你把libc當作預設使用lib丟給Linker
07/19 22:34, 3F

07/20 01:35, , 4F
參考 #1Juz_tgy 另外<math.h>的東西會在另一包 libm.so 裡
07/20 01:35, 4F

07/20 01:35, , 5F
至於為什麼會在另一包就是歷史因素了
07/20 01:35, 5F

07/20 10:58, , 6F
math.h就是新人最容易編(連)不過的庫 lol
07/20 10:58, 6F
文章代碼(AID): #1LgxAkHI (C_and_CPP)
文章代碼(AID): #1LgxAkHI (C_and_CPP)