其他分享
首页 > 其他分享> > 为什么引入库头文件就可以使用库函数而不需要与库函数c文件一起链接

为什么引入库头文件就可以使用库函数而不需要与库函数c文件一起链接

作者:互联网

https://blog.csdn.net/qq_43684922/article/details/103575896?ops_request_misc=&request_id=&biz_id=102&utm_term=%E4%B8%BA%E4%BB%80%E4%B9%88%E5%BC%95%E5%85%A5%E5%BA%93%E5%A4%B4%E6%96%87%E4%BB%B6&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduweb~default-1-103575896.first_rank_v2_pc_rank_v29&spm=1018.2226.3001.4187

那么为什么你可以直接去使用一个你没有声明也没有定义的函数呢?
回答: 因为这个函数在我们lib动态库中,动态库中有这个内容,而且系统动态库已经被载入内存了

ldd a.out
在这里插入图片描述
可以看到我们a.out依赖了三个库,所以其实printf的实现是在库里,我们运行的时候再加载的,这三个库是libc库,里面有常见库函数的实现。

使用nm指令验证是否在库里: nm -D /lib/x86_64-linux-gnu/libc.so.6 | grep printf
在这里插入图片描述

标签:头文件,103575896,E5%,blog,libc,E4%,链接,库函数
来源: https://blog.csdn.net/dianqicyuyan/article/details/122590248