如何在Windows中安装pkg配置?

dev*_*ium 57 windows pkg-config

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

有帮助吗?

Hyp*_*tum 75

根据我的经验,使用来自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

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

  • 如何更改cmake配置为使用MinGW? (3认同)
  • 您不必使用 MinGW - 您可以按照以下步骤操作,但将 pk-config.exe 和所需的 DLL 提取到您选择的任何文件夹(包括新文件夹),只需确保该文件夹位于您的 PATH 中即可。 (3认同)
  • @cindywmiao:从生成器列表中选择名称为MinGW的CMake生成器,例如“ MinGW Makefiles”。我个人使用“ CodeBlocks-MinGW Makefiles”,它还为CodeBlocks IDE生成了一个项目文件。 (2认同)
  • 情况很复杂。2021年有更新的答案吗?现在不同了。 (2认同)

ism*_*ail 48

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

下载pkg-config及其依赖库:

  • 我也在那里找到了所需的gtk二进制文件; 对于pkg-config_0.26-1_win32.zip,您需要http://ftp.gnome.org/pub/gnome/binaries/win32/glib/2.28/glib_2.28.8-1_win32中的文件libglib-2.0-0.dll.来自http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/gettext-runtime_0.18.1.1-2_win32.zip的zip和intl.dll (13认同)
  • 我在哪里放这些文件,以便cmake找到它们? (5认同)
  • 但是Windows上的pkg-config在哪里寻找已安装的库?在哪里搜索PC文件?这太令人困惑了,每个参与这种垃圾软件的人都感到羞耻... :) (3认同)
  • 将它们放在pkg-config所在的目录“ / bin”中。 (2认同)

mpr*_*net 27

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

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


Dzi*_*ars 5

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


Ale*_*lov 5

我想扩展@dzintars 关于 Cygwin 版本的 pkg-config 的答案,重点是如何正确地将它与 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。

解决方案:将 -DPKG_CONFIG_EXECUTABLE=C:/Cygwin64/bin/pkgconf.exe 添加到 CMake 命令行(或在 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)
Run Code Online (Sandbox Code Playgroud)

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。