0

我有一个头文件,例如“elf.h”或方法名称,例如“ElfData::addToSection()”。

我想知道相应的库文件——它的名称和它的位置,例如 /usr/lib/libelf.a 或 /usr/lib/libelf.so.0.8.13。有什么方法可以解决这个问题。什么是最好的方法。

另外我想知道哪些标题,函数与指定的库文件匹配。操作系统 = Ubuntu Linux。

可能是,这些问题很愚蠢:)但如果你能回复我将不胜感激。

4

1 回答 1

1

对于较新的库,您可以经常使用该pkg-config工具。你给它你想要链接的包的名字,它给你适当的编译器/链接器选项:

$ pkg-config --cflags glib-2.0
-I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include
$ pkg-config --libs glib-2.0
-lglib-2.0

这样你就可以把它放在你的Makefile

LIBS = `pkg-config --libs glib-2.0` -lm      # link with glib and libm
CFLAGS = -O2 `pkg-config --cflags glib-2.0`

(它不会为您找到标题,只是包含目录。)

对于不支持pkg-config的库,没有一种正确的方法可以找出库所属的标头,反之亦然。您通常要么将这些知识手动编码到构建系统中,要么使用诸如GNU 自动工具之类的东西,它允许检查多个库/头文件中的标识符或符号。

于 2012-04-20T15:22:44.300 回答