如何在 Windows 中安装 pkg 配置?

Posted

技术标签:

【中文标题】如何在 Windows 中安装 pkg 配置?【英文标题】:How to install pkg config in windows? 【发布时间】:2010-12-15 05:15:10 【问题描述】:

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

【问题讨论】:

【参考方案1】:

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

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

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

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

【讨论】:

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

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

下载 pkg-config 及其依赖库:

pkg-config_0.26-1_win32.zip glib_2.28.8-1_win32.zip gettext-runtime_0.18.1.1-2_win32.zip

【讨论】:

我也在那里找到了所需的 gtk 二进制文件;对于 pkg-config_0.26-1_win32.zip,您需要来自 ftp.gnome.org/pub/gnome/binaries/win32/glib/2.28/… 的文件 libglib-2.0-0.dll 和来自 ftp.gnome.org/pub/gnome/binaries/win32/dependencies/… 的 intl.dll 我应该把这些文件放在哪里,以便 cmake 找到它们? 将它们放在 pkg-config 所在的目录/bin 中。 但是 Windows 上的 pkg-config 在哪里查找已安装的库?它去哪里搜索pc文件?对于参与此类垃圾软件的每个人来说,这真是令人困惑和耻辱...... :) 将 pkg-config 可执行文件和依赖的 DLL 放在路径上的任何文件夹中,例如C:\WINDOWS【参考方案3】:

不依赖 glib 的替代方法是 pkg-config-lite。

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

现在这个包可以使用chocolatey,然后就可以安装了

choco install pkgconfiglite

【讨论】:

运行良好,FAQ here 中列出的 other pkg-config 在 Windows 10 Home 和 Pro 上对我来说也会崩溃。 你的路径是什么意思? 在环境变量 PATH 中添加您提取可执行文件的目录,以便访问它。【参考方案4】:

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

【讨论】:

【参考方案5】:

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

我在使用 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)

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。

【讨论】:

【参考方案6】:
    从https://sourceforge.net/projects/mingw-w64/ 安装mingw64。避免安装程序文件/(x86)文件夹。前任。 c:/mingw-w64 从here下载pkg-config__win64.zip 提取上面的 zip 文件并将 pkg-config/bin 文件夹中的所有文件复制粘贴到 mingw-w64。在我的情况下,它的 'C:\mingw-w64\i686-8.1.0-posix-dwarf-rt_v6-rev0\mingw32\bin' 现在设置路径 = C:\mingw-w64\i686-8.1.0-posix-dwarf-rt_v6-rev0\mingw32\bin taddaaa 你完成了。

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

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

完成了!

【讨论】:

我喜欢 taddaaa 的东西!【参考方案7】:

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

【讨论】:

该站点似乎确实有更新的版本,但您链接到的版本已过时。包链接其实是koji.fedoraproject.org/koji/packageinfo?packageID=13212 跟进我之前的评论:那些下载没有帮助;我用 7-Zip 解压了文件,但不知道下一步该做什么。相反,我按照以下网站上的说明进行操作,尽管他们要求使用不太最新的版本:gaia-gis.it/spatialite-3.0.0-BETA/mingw_how_to.html#pkg-config 该页面假定为 Mingw。我从 VM 在我的 Mac 上运行 Visual Studio 2008。硬盘空间稀缺。我不想安装 mingw 或 Cygwin 只是为了能够运行 pkg-config。 pkg-config missing 是 cmake 吐出的一个错误。我在混乱中迷失了方向【参考方案8】:

对于基于 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

【讨论】:

以上是关于如何在 Windows 中安装 pkg 配置?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Windows Server 2003 中安装和配置虚拟专用网络服务器

教你如何10分钟快速在Windows中安装MySQL

如何在Windows系统中安装Python

如何在Mac系统中安装R的rattle包

如何在 Windows 7 中安装 Xcode? [复制]

如何在Cygwin中安装并配置SSH