嗨,我在新安装的Fedora linux发行版中遇到了一个问题。pkg-config应该提供链接器标志,比如pkg-config --cflags libboost-dev
。但是pkg-config不能找到大多数库包。pkg-config --list-all
显示它只能找到几个包。
我在网上搜索了一下,了解到pkg-config通过在预定义的路径中搜索*来查找包。电脑文件。然而,对于大多数软件包(包括预安装的和用户安装的),没有这样的.pc文件。所以*。PC文件不是每次安装包时都生成的。
1、如何为每个已经安装的软件包提供.pc文件?2、如何确保每次安装新软件包时都提供。pc文件?
Fedora打包指南给出了创建包的方式以及包中应该包含的文件的信息。
关于-devel
包的部分特别相关。
突出显示部分
有一些类型的文件几乎总是属于
-devel
包:
- 头文件(foo.h),通常在/usr/include中找到
- 当包不提供任何匹配的共享库文件时,静态库文件。有关此场景的更多信息,请参阅打包:指南#Packaging_Static_Libraries。
- 当存在匹配的版本化共享系统库文件时,未版本化的共享系统库文件。
在下一节中,关于Pkgconfig文件,页面通知读者
pkgconfig(.pc)文件的位置取决于它们的用例。因为它们几乎总是用于开发目的,所以它们应该放在-devel包中。
一个合理的例外是当主包本身是一个开发工具,而不是安装在用户运行时,例如gcc或gdb。
因此,为了获得#include
或.pc
文件的头文件来告诉您编译器标志,您将需要xyz-devel
包,其中xyz
是标准包的名称。
如果你不能或不想猜测软件包的名称,一个有用的网站是Fedora packages搜索页面。