[問題] 如何修改函式庫內容

看板C_and_CPP作者 (Ami)時間5年前 (2018/12/20 10:03), 編輯推噓1(105)
留言6則, 3人參與, 5年前最新討論串1/1
開發平台(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

12/20 21:01, 5年前 , 1F
不用知道有多少啊 看名稱不就知道它在幹嘛
12/20 21:01, 1F

12/20 21:02, 5年前 , 2F
如果你習慣好一點 應該就是這樣
12/20 21:02, 2F

12/21 02:11, 5年前 , 3F
library 裡面包的是 .o 檔,.o 檔由 .c 檔生成。
12/21 02:11, 3F

12/21 02:12, 5年前 , 4F
nm --print-file-name 可以看。
12/21 02:12, 4F

12/29 02:47, 5年前 , 5F
如果是source就直接去撈吧
12/29 02:47, 5F

12/29 02:48, 5年前 , 6F
是obj或archive就用objdump看看函式內有哪些symbol
12/29 02:48, 6F
文章代碼(AID): #1S6lYD_F (C_and_CPP)