pkg-config: 命令未找到,在Windows 7上使用Cygwin。

4

我正在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的文件夹。

我该如何解决这个错误?


1
你解决了这个问题吗?因为我现在也遇到了,需要帮助。 - Sara
3个回答

3

pkg-config是一款软件,它可以让你的计算机在源代码编译时检查已安装的库。在Windows上可能没有安装,所以在这种情况下请检查是否已安装。

但是在您的情况下,我认为它已经安装了,但是没有设置正确的路径以供Linux命令使用。请尝试在cygwin中输入:

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

如本帖子中所述。

否则,放弃Windows并尝试在Linux虚拟机上编译mergevec,这样更容易(它就是为此而制作的)。这种方法唯一的缺点是您必须在Linux空间下执行mergevec操作(以及之前的操作,否则可能会出现编码问题)。请参阅我之前的答案了解此操作。

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


就我所知,我的Cygwin上的pkgconfig文件夹位于c:\\cygwin\\usr\lib\\pkgconfig(不包括本地)。 - joefromct

0

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

从命令中可以看出,用户可能混淆了带有 - 的工具 pkg-config 和不带 - 的目录 pkgconfig。如果我在我的系统上运行它而没有破折号,当然会得到相同的错误消息:

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

在Cygwin中,有一个名为pkgconf.exe的工具,pkg-config是它的符号链接,而pkgconfig是一个目录。没有名为pkgconfig的工具。
如果找不到pkg-config,则意味着Cygwin安装中缺少pkg-config工具(解决方案是升级Cygwin工具并在复选框中选择它),或者可能是我在https://dev59.com/7nI-5IYBdhLWcg3wta7w#66037850中描述的符号链接问题(在这种情况下的解决方案是使用确实的Cygwin控制台而不是带有C:\Cygwin64\bin路径的本机cmd.exe,或显式调用pkgconf.exe)。

0

enter image description here

运行cgywin安装程序,在软件包搜索中键入pkg-config,然后确保已安装pkg-config实用程序。这应该解决未找到命令的问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接