dev*_*ium 57 windows pkg-config
我正在尝试这样做,但我能得到的是一些我不知道如何处理的源代码我从http://pkgconfig.freedesktop.org/releases/下载.
有帮助吗?
Hyp*_*tum 75
根据我的经验,使用来自Oliver Zendel评论的信息,这是让pkg-config在Windows上运行的分步过程.
我假设MinGW安装在C:\ MinGW.有多个版本的软件包可用,在每种情况下我都下载了最新版本.
现在,如果配置为使用MinGW,CMake将能够使用pkg-config.
ism*_*ail 48
从http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/获取预编译的二进制文件
下载pkg-config及其依赖库:
我通过从这个链接https://www.cygwin.com/安装Cygwin64 然后 - 查看完整,搜索gcc并向下滚动以找到pkg-config来做到这一点。单击图标选择最新版本。这对我很有效。
我想扩展@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 中有效:
解决方案:始终将 .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。