我在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
不在该列表中。
但pkgconfig
中有一个名为C:\cygwin64\lib
的文件夹。
如何解决此错误?
答案 0 :(得分:2)
pkg-config是一款软件,允许您的计算机检查已安装的库以进行源编译。它可能没有安装在Windows上,所以在最后一个场景中请检查安装。
但是在你的情况下,我认为它已经安装,但没有设置在linux命令的正确路径上。尝试输入cygwin:
$ export PKG_CONFIG_PATH=c:\\cygwin\\usr\\local\\lib\\pkgconfig
如此post中所述。
否则只是放弃Windows并尝试在Linux VM上编译mergevec,这非常容易(它是为它制作的)。这种方法唯一的缺点是你必须在linux空间下进行mergevec操作(以及之前的操作,否则你可能会遇到编码问题)。请参阅我之前的answer进行此操作。
如果有任何问题不要犹豫。
答案 1 :(得分:0)
答案 2 :(得分: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://stackoverflow.com/a/66037850/4807875 中描述(在这种情况下,解决方案是使用真正的 Cygwin 控制台而不是本机 cmd.exe,其中的 PATH 中包含 C:\Cygwin64\bin,或者显式调用 pkgconf.exe)。>