74

我正在尝试这样做,但我能得到的只是一些我不知道如何处理我从http://pkgconfig.freedesktop.org/releases/下载的源代码。

4

8 回答 8

94

根据我的经验,使用 Oliver Zendel 评论中的信息,这是让 pkg-config 在 Windows 上运行的分步过程。

我在这里假设 MinGW 安装到 C:\MinGW。有多个版本的软件包可用,在每种情况下我都下载了最新版本。

  1. 转到http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/
  2. 下载文件pkg-config_0.26-1_win32.zip
  3. 将文件 bin/pkg-config.exe 解压到 C:\MinGW\bin
  4. 下载文件gettext-runtime_0.18.1.1-2_win32.zip
  5. 将文件 bin/intl.dll 解压到 C:\MinGW\bin
  6. 转到http://ftp.gnome.org/pub/gnome/binaries/win32/glib/2.28
  7. 下载文件glib_2.28.8-1_win32.zip
  8. 将文件 bin/libglib-2.0-0.dll 解压到 C:\MinGW\bin

现在,如果 CMake 配置为使用 MinGW,它将能够使用 pkg-config。

于 2014-03-12T21:06:09.117 回答
61

从http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/获取预编译的二进制文件

下载 pkg-config 及其依赖库:

于 2009-11-10T21:28:57.203 回答
39

没有 glib 依赖的替代方案是pkg-config-lite

从存档中提取pkg-config.exe并将其放在您的路径中。

现在这个包可以使用Chocolatey获得,然后可以安装它

choco install pkgconfiglite
于 2014-09-01T12:14:15.230 回答
5

我通过从这个链接https://www.cygwin.com/安装Cygwin64来做到这一点, 然后 - 查看完整,搜索gcc并向下滚动以找到pkg-config。单击图标以选择最新版本。这对我很有效。

于 2018-09-04T11:05:42.107 回答
4

我想扩展@dzintars 关于 pkg-config 的 Cygwin 版本的答案,重点是如何在 CMake 中正确使用它,因为我在这个主题中看到了关于 CMake 的各种评论。

我在使用 CMake + Cygwin 的 pkg-config 时遇到了很多麻烦,我想分享我的经验如何避免它们。

1. 符号链接 C:/Cygwin64/bin/pkg-config -> pkgconf.exe 在 Windows 控制台中不起作用。

它不是本机 Windows .lnk 符号链接,即使您添加“.;”,它也无法在 Windows 控制台 cmd.exe 中调用。到您的 %PATHEXT% (请参阅https://www.mail-archive.com/cygwin@cygwin.com/msg104088.html)。

它不适用于 CMake,因为 CMake 使用方法 execute_process() (FindPkgConfig.cmake) 调用 pkg-config,该方法会打开一个新的 cmd.exe。

解决方法:在 CMake 命令行中添加 -DPKG_CONFIG_EXECUTABLE=C:/Cygwin64/bin/pkgconf.exe(或在 CMakeLists.txt 中设置)。

2. Cygwin 的 pkg-config 仅识别 PKG_CONFIG_PATH 中的 Cygwin 路径(无 Windows 路径)。

例如,在我的系统上,.pc 文件位于 C:\Cygwin64\usr\x86_64-w64-mingw32\sys-root\mingw\lib\pkgconfig。以下三个路径有效,但只有路径 C 在 PKG_CONFIG_PATH 中有效:

  • A) c:/Cygwin64/usr/x86_64-w64-mingw32/sys-root/mingw/lib/pkgconfig - 不起作用。
  • B)/c/cygdrive/usr/x86_64-w64-mingw32/sys-root/mingw/lib/pkgconfig - 不起作用。
  • C)/usr/x86_64-w64-mingw32/sys-root/mingw/lib/pkgconfig - 有效。

解决方案:始终将 .pc 文件位置作为 Cygwin 路径添加到 PKG_CONFIG_PATH 中。

3) CMake 在 Cygwin 的 PKG_CONFIG_PATH 中将正斜杠转换为反斜杠。

这是由于错误https://gitlab.kitware.com/cmake/cmake/-/issues/21629造成的。它会阻止使用 [2] 中描述的解决方法。

解决方案:手动更新文件C:/Program Files/CMake/share/cmake-3.x/Modules/FindPkgConfig.cmake中的函数_pkg_set_path_internal()。注释/删除该行:

file(TO_NATIVE_PATH "${_pkgconfig_path}" _pkgconfig_path)

4) CMAKE_PREFIX_PATH、CMAKE_FRAMEWORK_PATH、CMAKE_APPBUNDLE_PATH 对 Cygwin 中的 pkg-config 没有影响。

原因:错误https://gitlab.kitware.com/cmake/cmake/-/issues/21775

解决方案:如果您在 Cygwin 上运行 CMake 构建,则仅使用 PKG_CONFIG_PATH 作为环境变量。忘记 CMAKE_PREFIX_PATH、CMAKE_FRAMEWORK_PATH、CMAKE_APPBUNDLE_PATH。

于 2021-02-04T00:45:57.870 回答
3
  1. 从https://sourceforge.net/projects/mingw-w64/安装 mingw64 。避免安装程序文件/(x86)文件夹。前任。c:/mingw-w64
  2. 从这里下载 pkg-config__win64.zip
  3. 提取上面的 zip 文件并将 pkg-config/bin 文件夹中的所有文件复制粘贴到 mingw-w64。在我的情况下,它的 'C:\mingw-w64\i686-8.1.0-posix-dwarf-rt_v6-rev0\mingw32\bin'
  4. 现在设置 path = C:\mingw-w64\i686-8.1.0-posix-dwarf-rt_v6-rev0\mingw32\bin taddaaa 你就完成了。

如果您发现任何安全问题,请按照步骤操作

  1. 在系统中搜索 Windows Defender 安全中心
  2. 导航到应用程序和浏览器控制>漏洞利用保护设置>程序设置>单击“+添加程序自定义”
  3. 选择按名称添加程序
  4. 输入程序名称:pkgconf.exe
  5. 好的
  6. 现在检查所有设置并将其设置为关闭并应用。

完成了!

于 2020-07-27T18:29:15.960 回答
0

您可以在 Fedora Build System 站点找到另一个可以获取更多更新二进制文件的地方。mingw-pkg-config 包的直接链接是:http ://koji.fedoraproject.org/koji/buildinfo?buildID=354619

于 2013-01-29T01:58:43.063 回答
0

对于基于 w64 的计算机,您必须安装 mingw64。如果 pkg-config.exe 缺失则可以参考http://ftp.acc.umu.se/pub/gnome/binaries/win64/dependencies/

解压缩并将 pkg-config.exe 复制/合并到您的 C:\mingw-w64 安装中,例如。在我的电脑上进入 C:\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0\mingw64\bin

于 2020-01-05T10:51:23.210 回答