作者hirofumisyo (Ami)
看板C_and_CPP
标题[问题] 如何修改函式库内容
时间Thu Dec 20 10:03:53 2018
开发平台(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://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1545271437.A.FCF.html
1F:推 loadingN: 不用知道有多少啊 看名称不就知道它在干嘛 12/20 21:01
2F:→ loadingN: 如果你习惯好一点 应该就是这样 12/20 21:02
3F:→ tinlans: library 里面包的是 .o 档,.o 档由 .c 档生成。 12/21 02:11
4F:→ tinlans: nm --print-file-name 可以看。 12/21 02:12
5F:→ BaJiaJhon: 如果是source就直接去捞吧 12/29 02:47
6F:→ BaJiaJhon: 是obj或archive就用objdump看看函式内有哪些symbol 12/29 02:48