libconfig PKG_CONFIG_PATH 环境变量的问题

libconfig PKG_CONFIG_PATH 环境变量的问题

我用 C 语言编写了一个包含一些文件的项目。为了让用户轻松启动程序,我开始生成 cfg 文件。为此,我安装了 libconf。不幸的是,在使用 libconfig 示例文件进行编译时,我收到了此消息。

gcc $(pkg-config --cflags --libs libconfig) example1.c -o example1 example.cfg



example1.c: In Function »main«: example1.c:43:13: Warning: Format »%s« expected argumenttyp »char *«, but argument 3   has typ »int« [-Wformat]

.....

正如我被告知我安装了sudo apt-get 安装 libconfig8-dev并希望不设置任何 PKG_CONFIG_PATH。看起来它编译不正确。

答案1

您如何获得并安装libconfig

如果你刚刚安装了该libconfig8包,那么不够。您还需要安装-dev与之对应的软件包,以便提供开发文件(标头、静态链接库和 pkg-config 数据)。我能够找到 libconfig 的精确位置packages.ubuntu.com。 所以

sudo apt-get install libconfig8-dev

应该可以解决问题。

正如你所看到的这里,此包的文件列表包含以下文件路径:

/usr/lib/pkgconfig/libconfig.pc

这正是pkg-config需要能够拉出CFLAGSLDFLAGS对应的文件libconfig

此目录位于 Ubuntu 的“内置”pkg-config搜索路径中。因此,无需设置。只有在需要查找目录PKG_CONFIG_PATH时才需要设置该环境变量pkg-config以外默认搜索的内容。因此,如果您编译了一个程序并将其安装在 中,并且需要将/home/user/apps/blah文件提供给,则您需要设置:/home/user/apps/blah/lib/pkg-config/libblah.pcpkg-config

export PKG_CONFIG_PATH=/home/user/apps/blah/lib/pkg-config/libblah.pc

pkg-config找到该的安装libblah.pc

但是,由于您是libconfig从 Ubuntu 本身安装,它会自动将 .pc 文件“放入”正确的搜索目录中。

相关内容