puk*_*puk 10 linker compilation pkg-config shared-libraries
当使用像 pkg-config 这样的工具(参见这里)时,如何知道库名称应该是什么?它并不总是直观的。例如,DLIB 不适用于
pkg-config --cflags dlibpkg-config --cflags libdlibpkg-config --cflags dlib-19.9我通常必须发出类似的命令sudo ldconfig -p | grep dlib,但所做的只是 return libdlib.so,这也不起作用。
专家如何解决这个问题。他们只是知道所有图书馆的名称吗?
pmo*_*mod 13
它被称为包名称,您用作 pkg-config 的主要参数,然后应用--cflags或--libs等,只需访问从相应的包配置文件([some_package_name].pc ,又名pkg-config 元数据文件),在pkg-config 搜索路径中找到。
是的,包名称与库名称之间的关系没有任何规则。通常它是不带lib-前缀的库名称或只是整个库名称。我在pkg-config 指南中找到了以下内容:
常见的选择是将库名称与 .pc 名称相匹配。例如,安装 libfoo.so 的包将有一个相应的 libfoo.pc 文件,其中包含 pkg-config 元数据。这个选择不是必须的;.pc 文件应该只是您的库的唯一标识符。按照上面的示例,foo.pc 或foolib.pc 可能也能正常工作。
但是,您可以列出 pkg-config 搜索路径中所有可用的内容,并在 Makefile 中使用它们之前找出正确的名称:
$ pkg-config --list-all | grep dlib
Run Code Online (Sandbox Code Playgroud)