configure
当使用,make
和安装库时make install
,是否make install
复制<libraryname>.pc
到某个地方?- 如果是:它在哪里?
- 如果不是:我们应该将其复制到某个地方而不是将它们留在原处吗?
我这么问是因为在我的一本旧笔记本上,我看到:
将包含的目录添加
libraryname.pc
到 PKG_CONFIG_PATH 环境变量中,以便pkg-config --clags libraryname
和pkg-config --libs libraryname
可以找到它们。将
dpkg -l
能够根据其路径是否添加来跟踪已安装的库PKG_CONFIG_PATH
?一旦我复制
<libraryname>.pc
到某个地方,就能dpkg -l
跟踪已安装的软件包吗?
答案1
一般来说,./configure && make && make install
没有任何参数会将所有内容粘贴在 下/usr/local
,这将放置foo.pc
在/usr/local/lib/pkgconfig/foo.pc
要利用它,您基本上需要PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:${PKG_CONFIG_PATH} pkg-config --cflags foo
按以下方式进行编译:
./configure --prefix=/usr #places built binaries under /usr instead of /usr/local
make
make install
现在foo.pc
文件将位于预期位置。
注意:这会将内容放置在系统文件夹中,因此请注意,如果不小心,您可能会覆盖重要的内容。
对于这个问题的回答是dpkg
,不。包管理器只能跟踪它们安装的文件。现在,如果您喜欢冒险,您可以编写包装标准 buils 过程所需的文件./configure && make && make install
以生成dpkg
可安装的 deb 包,该包会被追踪:)
自从我上次制作 Debian 软件包以来已经有一段时间了,几年了,说实话我相当讨厌这个过程,所以不要指望我提供这方面的信息。从那时起,我已经切换到 archlinux 并编写PKGBUILD
s (使用 构建 arch 包的脚本makepkg
)是一项非常简单的任务:)