原文地址::http://www.educity.cn/net/511949.html
相关文章
1、Linux 中如何快速查看 C 库函数的头文件以及相应的函数信息?----https://www.zhihu.com/question/25028178
2、如何查看linux函数对应的库文件----http://bbs.csdn.net/topics/330158874
关于怎样查出一个库函数到底在哪个库文件中,我想到一个变通的办法,以查找fcntl函数在哪个库文件中为例吧:
1、找到一个使用fcntl的可执行文件,如test_fcntl。实在不行,自己编一个只有fcntl函数的c文件,然后编译一下得了。
2、使用“ldd test_fcntl”命令,可以追踪出该可执行文件到底使用了哪些库文件。通常可能有几个到几十个。
3、根据要查找的函数的作用和上一步所得到的各库文件的名字大致推测一下,该函数可能会在哪个或哪些库中。
4、最后使用"nm test_fcntl"命令,依次查找一下第三步所得到的库文件,通常就可以最后确定fcntl函数到底在哪个库中。
比如,我用上面的方法查出fcntl函数在“/lib/tls/libc.so.6”库中。
//########################################################################################################################## 有一些常识或者说平时的积累是必要的,终究常用的库很少。
当我遇到一个函数不知道所属的库的时候,我会先找到头文件所属的包,然后看看那个包(或者相关包)的.a或者.so文件有哪些,然后:
objdump -x 库文件 | grep 函数名
确认函数名是定义而不是引用以后,就知道需要链接这个库了。