我正准备在 Windows 11 上编译 GTK+-3.0 测试应用程序。我有一个在 Linux 上运行良好的 CMake 配置。
我已经使用 msys2 安装了 GTK 3.0,遵循以下说明:https://www.gtk.org/docs/installations/windows/
我更新了全局环境变量
PATH
(附加 C:\tools\msys64\mingw64\bin
),并创建了全局环境变量 PKG_CONFIG_PATH
,其中包含包含所有 .pc 文件的目录路径 (C:\tools\msys64\mingw64\lib\pkgconfig
)。当我运行 pkg-config.exe --list-all
时,列表包含 GTK+-3.0 并且运行 pkg-config.exe --print-variables --debug gtk+-3.0
会给出合理的输出,没有任何错误。
我在我的 CMake 配置中使用它:
find_package(PkgConfig REQUIRED)
pkg_check_modules(GTK REQUIRED IMPORTED_TARGET "gtk+-3.0")
在 Windows 上,我收到错误:
-- Checking for module 'gtk+-3.0'
-- Package 'gtk+-3.0', required by 'virtual:world', not found
CMake Error at C:/Program Files/CMake/share/cmake-3.25/Modules FindPkgConfig.cmake:607 (message):
A required package was not found
Call Stack (most recent call first):
C:/Program Files/CMake/share/cmake-3.25/Modules FindPkgConfig.cmake:829 (_pkg_check_modules_internal)
CMakeLists.txt:35 (pkg_check_modules)
当我尝试配置环境变量时,每当
PKG_CONFIG_PATH
没有指向包含文件 gtk+-3.0.pc
的目录时,我都会遇到相同的错误。在我看来,required by 'virtual:world', not found
更多的是缺少 .pc 文件的一般错误,而不是实际缺少的要求。
我已经看过这篇文章:set PKG_CONFIG_PATH in cmake但建议的解决方案对我没有帮助。当我也在 CMake 配置中设置环境变量
PKG_CONFIG_PATH
时,我仍然遇到相同的错误。
我根本不经常使用Windows。对于经验丰富的 Windows 用户来说,我错过了一些非常明显的东西,这并非不可能。
无论是从MSYS2环境调用CMake,还是在从Windows命令提示符调用CMake的Windows安装时额外设置全局环境变量MSYSTEM,都可以帮助我解决这个问题。
从 MSYS2 环境调用 CMake 似乎是更简单、更值得推荐的选项。