首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >标识哪个Linux系统库包含一个函数

标识哪个Linux系统库包含一个函数
EN

Stack Overflow用户
提问于 2010-02-24 14:25:19
回答 6查看 6.7K关注 0票数 10

我使用的是dev系统,在访问其中的函数时,必须指定lib名称。

我以前使用过诸如open()之类的函数,不知怎么发现它们在libc.so中。

现在,我想使用lstat(),但它似乎不在libc中。可悲的是,我看过的手册没有记录函数的位置。

因此,有两个问题:

  1. 能告诉谁是哪个库主机lstat?
  2. ,一般情况下如何找出?除了对lib文件夹中的所有文件使用grep "name“之外,我的意思是.

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2010-02-24 15:10:55

在C中构建一个简单的测试用例,编译它并在其上运行'ldd -r‘来检查加载了什么库。如果C中没有lstat(),那么dev env就会出现问题。或者这个env可以追溯到符号链接时代之前:-)

票数 5
EN

Stack Overflow用户

发布于 2010-02-24 14:41:39

这是一种方法:

代码语言:javascript
复制
tomislav@malik:~$ cd /usr/lib
tomislav@malik:/usr/lib$ grep "lstat()" *
Binary file libperl.so.5.10 matches
Binary file libperl.so.5.10.0 matches
tomislav@malik:/usr/lib$ 
票数 3
EN

Stack Overflow用户

发布于 2015-11-18 21:25:34

当我交叉编译Linux上的Windows应用程序时,如果我在链接方面有问题,我倾向于使用我命名为mingw-findin的脚本。类似的脚本可以用于常规Linux编译,而不是使用mingw替代方案,使用正则nm,而不是查看交叉编译前缀目录,查看/usr/lib。要使用这个脚本,我运行

./mingw-findin NameOfFunction

下面是代码:

代码语言:javascript
复制
#!/bin/sh
liblist=` ls /usr/x86_64-w64-mingw32/lib `

for i in $liblist
do

if x86_64-w64-mingw32-nm /usr/x86_64-w64-mingw32/lib/$i | grep -q $1; then
        echo $i
        x86_64-w64-mingw32-nm /usr/x86_64-w64-mingw32/lib/$i | grep $1
fi

done
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2326636

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档