【问题标题】:Finding what library files I need to include for the implementation of a particular c header查找我需要包含哪些库文件以实现特定的 c 标头
【发布时间】:2011-02-14 03:00:12
【问题描述】:

如果没有同名的库,我如何找到实现特定 c 头文件需要包含的库文件?

【问题讨论】:

  • 为什么还要在代码中添加#include<AHeaderIKnowNothingAbout>
  • 好像有我想要的功能。

标签: c header linker compilation


【解决方案1】:

我会在 Google 上搜索标题的名称或其中的函数。

如果您使用的是基于 Debian 的系统,您还可以尝试 dpkg -S <full header path> 告诉您哪个软件包提供了标头,然后查看同一软件包提供的其他文件(在 /usr/lib 中)。

【讨论】:

  • 这是一个内部项目,所以它不会被谷歌化或打包为 deb。
  • 然后,您应该使用同事使用的任何内部工具搜索您的内部文档。如果没有这样的文档或工具,可能是时候制作一些了。如果标头通过系统包管理器以外的某种机制进入系统,您可以查询该系统(为什么我认为真的没有系统,而有人只是复制了文件?)。您可能会猜测 .h 文件将具有匹配的 .c 文件,并在构建系统中使用 grep 获取其名称。如果这些都不起作用,请询问您的同事,然后尝试为下一个人做得更好。
  • 我为 .c 文件运行了定位,但没有找到。我希望得到一些解释,可能使用字符串或一些工具从库中提取函数名。
  • 但是你说你正在搜索图书馆,不是吗?我想如果您有一组候选库并且想查看哪个库包含给定符号,您可以使用objdump 或类似的方式转储它们的内容,然后使用grep
猜你喜欢
  • 1970-01-01
  • 2011-01-15
  • 1970-01-01
  • 1970-01-01
  • 2014-12-24
  • 1970-01-01
  • 2011-03-27
  • 2011-04-14
  • 1970-01-01
相关资源
最近更新 更多