Windows11下CMake调用pkg-config提示gtk+-3.0未找到问题求助
解决Windows 11下CMake无法通过pkg-config找到GTK+-3.0的问题
以下是针对你的问题的可行解决方案:
使用MSYS2自带的CMake环境,而非系统安装的CMake
系统独立安装的CMake可能无法正确识别MSYS2 MinGW64环境下的pkg-config配置。打开MSYS2的MinGW64终端(开始菜单里找MSYS2 MinGW 64-bit),直接在这个终端内执行cmake构建命令,这里的CMake是和MSYS2工具链适配的。指定正确的CMake生成器
GTK是通过MinGW编译的,必须使用MinGW Makefiles生成器,不能用Visual Studio系列生成器。执行cmake时添加生成器参数:cmake -G "MinGW Makefiles" ..手动指定pkg-config路径到CMakeLists.txt
若环境变量未正确传递给CMake进程,可以直接在CMakeLists开头强制指定pkg-config的位置:# 先指定MSYS2 MinGW64下的pkg-config路径 set(PKG_CONFIG_EXECUTABLE "C:/tools/msys64/mingw64/bin/pkg-config.exe") find_package(PkgConfig REQUIRED) pkg_check_modules(GTK REQUIRED IMPORTED_TARGET "gtk+-3.0")同时也可以手动设置PKG_CONFIG_PATH环境变量:
set(ENV{PKG_CONFIG_PATH} "C:/tools/msys64/mingw64/lib/pkgconfig")验证环境变量是否生效
在CMakeLists中添加日志输出,确认PKG_CONFIG_PATH是否正确:message(STATUS "当前PKG_CONFIG_PATH: $ENV{PKG_CONFIG_PATH}")执行cmake后查看输出,如果路径不对,说明终端环境变量未正确加载,可以在MSYS2终端先手动导出变量再执行cmake:
export PKG_CONFIG_PATH=/mingw64/lib/pkgconfig cmake -G "MinGW Makefiles" ..
注意事项:全程保持工具链一致性,所有编译相关操作(cmake、make、gcc等)都要在MSYS2 MinGW64终端内完成,不要混合使用系统自带的编译工具或CMake。
内容的提问来源于stack exchange,提问作者bugblatterbeast
相关产品推荐
相关产品推荐

