Pkg-config 路径在正确的目录中,但找不到 .pc 文件

我正在尝试从 MakeFile 构建 SWUpdater,但在构建时出现以下错误

Package lua was not found in the pkg-config search path.
Perhaps you should add the directory containing `lua.pc'
to the PKG_CONFIG_PATH environment variable
No package 'lua' found
Package lua was not found in the pkg-config search path.
Perhaps you should add the directory containing `lua.pc'
to the PKG_CONFIG_PATH environment variable
No package 'lua' found
Package lua was not found in the pkg-config search path.
Perhaps you should add the directory containing `lua.pc'
to the PKG_CONFIG_PATH environment variable
No package 'lua' found
make: 'Makefile' is up to date.

根据我在网上阅读到的信息,这个错误告诉我,当系统正在查找 SWUpdate 依赖文件时,它无法在 pkg-config 查找的任何地方找到 lua.pc 文件。

我查看了 usr/lib/pkgconfig 中的文件,并在该目录下找到了 lu50.pclualib50.pc 文件。同时,我也查看了包配置程序查找的位置,使用了以下命令:

pkg-config --variable pc_path pkg-config

它告诉我它正在 /usr/lib/pkgconfig 中查找,以及其他地方。我看到有人提到可以检查 PKG_CONFIG_PATH 变量以查看它设置为什么。我检查后发现它为空,因此我认为我只需要将路径设置为 /usr/lib/pkgconfig 即可,使用以下命令:

export PKG_CONFIG_PATH=/usr/lin/pkgconfig

我检查了路径,再次运行了 make 命令,但出现了相同的错误。

最后我尝试通过将 lua50.pclualib50.pc 文件移动到其他被列为包配置程序路径的目录中来解决这个问题,但仍然出现相同的错误,因此我将它们移回了原来的位置。

所以我的主要问题是:为什么包配置程序在查找正确的目录中的 lua50.pc 文件时找不到它?

编辑:我已经通过将 lua50.pc 重命名为 lua.pc 来避免这些错误,这让我相信它无法找到它的原因是因为它实际上在查找名为 lua.pc 的文件,而不是一般的 lua pc 文件。尽管如此,我的问题仍然存在,因为我有一种直觉,这不是长期可行的解决方案。

点赞
用户8697265
用户8697265

我在构建过程中错过了几个步骤。我成功构建SWUpdate的过程是:

sudo apt-get install lua5.2
sudo apt-get install lua-dev
sudo apt-get install liblua5.2-dev
sudo apt-get install libconfig-dev
sudo apt-get install libjson-c-dev
sudo apt-get install libcurl4-openssl-dev
sudo apt-get install libsystemd-dev
sudo apt-get install libssl-dev

我需要解释的是,我正在进行的是Ubuntu系统的全新安装,但谨慎起见,最好还是完成上述命令。

接下来,进入SWUpdate目录并运行'make menuconfig'。在这里,将启动加载程序更改为您的发行版中使用的任何项。然后进入“SWUpdate设置”,澄清您使用的Lua版本(我的构建使用的是Lua5.2)。

由于本篇文章涉及在桌面版系统上构建,重要的是要关闭一些无法使用的功能,例如MTD支持。SWUpdate会构建失败,因为桌面版发行版往往没有这些嵌入式工具。

同样适用于处理程序,最好保持MTD和UBI处理程序关闭,除非您想追踪许多不同的包含文件。这可能因机器而异,但在我的机器上,归档处理程序也需要关闭。

如果您开启了某些功能,可能会损坏桌面版发行版。但对于我的评估需求来说,它已经足够好了。

2018-02-06 22:43:51