【问题标题】:pkg-config: command not found, using cygwin on windows 7pkg-config:找不到命令,在 Windows 7 上使用 cygwin
【发布时间】:2023-03-17 02:59:01
【问题描述】:

我在 windows 上使用 Cygwin 来运行这个命令:

 g++ `pkgconfig --libs --cflags opencv` -I. -o mergevec mergevec.cpp ....

但我得到一个错误:

-bash: pkg-config: command not found

我已经在 C: 上直接安装了 cygwin。我在 PATH 环境变量中添加了以下内容:

C:\cygwin64\bin;
C:\cygwin64\lib

我运行了cygcheck -c,它给了我一个完整的包列表,但pkg-config 不在那个列表中。 不过,C:\cygwin64\lib 中有一个名为 pkgconfig 的文件夹。 如何解决此错误?

【问题讨论】:

  • 您是否解决了这个问题,因为我现在正面临这个问题并需要帮助

标签: windows path g++ cygwin pkg-config


【解决方案1】:

pkg-config 是一款软件,可让您的计算机检查已安装的库以进行源代码编译。它可能未安装在 Windows 上,因此在最后一种情况下,请检查安装。

但是,在您的情况下,我认为它已安装,但未在 linux 命令的正确路径上设置。尝试输入cygwin:

$ export PKG_CONFIG_PATH=c:\\cygwin\\usr\\local\\lib\\pkgconfig 

post 中所述。

否则就放弃 Windows 并尝试在 Linux VM 上编译 mergevec,这确实更容易(它是为此而生的)。这种方法的唯一缺点是您必须在您的 linux 空间下执行 mergevec 操作(以及之前的操作,否则您可能会遇到编码问题)。有关此操作,请参阅我之前的 answer

如果有任何问题,请不要犹豫。

【讨论】:

  • FWIW,我在 cygwin 上的 pkgconfig 文件夹位于 c:\\cygwin\\usr\lib\\pkgconfig (忽略本地)。
【解决方案2】:

运行 cgywin setup 并在包搜索中键入 pkg-config 然后确保已安装 pkg-config 实用程序。 它应该可以解决找不到命令的问题。

【讨论】:

    【解决方案3】:

    我认为在这种情况下它与 PKG_CONFIG_PATH 无关,因为用户抱怨“找不到命令”错误消息。

    正如我从命令中看到的那样,用户可能将 pkg-config 作为工具(带 -)和 pkgconfig(不带 -)作为目录混合在一起。如果我在系统上不使用破折号运行它,我当然会收到相同的错误消息:

    $ pkgconfig --libs --cflags opencv
    -bash: pkgconfig: command not found
    

    在 Cygwin 上有 pkg​​conf.exe 作为工具,pkg-config 作为指向它的符号链接,pkgconfig 作为目录。没有工具 pkgconfig。

    如果没有找到 pkg-config 则意味着 Cygwin 安装中缺少 pkg-config 工具(解决方案是升级 Cygwin 工具并在复选框中选择它)或者它可能是我的符号链接问题在https://stackoverflow.com/a/66037850/4807875 中描述(这种情况下的解决方案是使用Cygwin 控制台而不是本地cmd.exe,其中C:\Cygwin64\bin 在其中,或者显式调用pkgconf.exe)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-08
      • 2010-09-11
      • 2014-07-04
      • 1970-01-01
      • 2012-06-04
      • 2014-04-26
      • 2013-02-13
      • 1970-01-01
      相关资源
      最近更新 更多