看板 C_and_CPP 關於我們 聯絡資訊
開發平台(Platform): (Ex: Win10, Linux, ...) Linux 編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出) gcc 問題(Question): 大家好, 我雖然玩過一陣子arduino, 但從來沒有編寫過函式庫的經驗, 對函式庫也沒有什麼概念。 以往覺得函示庫 == 標頭檔, 因為常常看書上說到現在使用的是標準函式庫, 要使用這個功能需先將標頭檔include近來, 一直不知道為什麼只要把.h檔放進來就可以使用.c檔裡的函數了, 後來才知道是編譯器自己會去特定位置幫你找函式庫或是對應.c檔的內容。 目前我在開發一個嵌入式的系統, 從makefile可以知道執行檔需要連結哪些函式庫, 若我想要更改某個.c檔裡的函式內容, 我應該要先知道這個函式庫用到了那些.c檔吧? 然後再把這個修改過的.c檔與其他沒修改過的一起重新編譯函式庫, 不知道這樣說的對不對。 如果是這樣的話有辦法知道一個函式庫裡包含了多少.c檔嗎? 剛剛看到有文章提到ldd這個指令可以解析函式庫裡有多少其他函式庫, 但好像不能解析出有用到多少c檔? 謝謝大家 餵入的資料(Input): 預期的正確結果(Expected Output): 錯誤結果(Wrong Output): 程式碼(Code):(請善用置底文網頁, 記得排版,禁止使用圖檔) 補充說明(Supplement): -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 218.161.17.187 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1545271437.A.FCF.html
loadingN: 不用知道有多少啊 看名稱不就知道它在幹嘛 12/20 21:01
loadingN: 如果你習慣好一點 應該就是這樣 12/20 21:02
tinlans: library 裡面包的是 .o 檔,.o 檔由 .c 檔生成。 12/21 02:11
tinlans: nm --print-file-name 可以看。 12/21 02:12
BaJiaJhon: 如果是source就直接去撈吧 12/29 02:47
BaJiaJhon: 是obj或archive就用objdump看看函式內有哪些symbol 12/29 02:48