为什么 CMake 找不到 gtk通过 pkg_config而 cmd 找到? 系统

问题描述

我正在尝试将 gtk3 包含到我的 C++ 项目中,但是每次 VS2019 尝试编译该项目时,它都会因 CMake 错误而失败:

1> [CMake] -- Checking for module 'gtk+-3.0'
1> [CMake] --   No package 'gtk+-3.0' found

因此我用CMD检查了模块是否存在并返回

C:\>pkg-config --list-all | grep gtk
gtk+-3.0                  GTK+ - GTK+ Graphical UI Library
gtk+-broadway-3.0         GTK+ - GTK+ Graphical UI Library
gtk+-win32-3.0            GTK+ - GTK+ Graphical UI Library

我想是因为我安装了多个 MinGW 和 Msys,可能会执行错误的 pkg-config,因此我将 PKG_CONfig_EXECUTABLE 设置为与 cmd 使用的路径相同的路径。我还认为 PKG_CONfig_PATH 可能是原因,但我使用 cmd 命令 message(STATUS $ENV{PKG_CONfig_PATH}) 检查了 echo %PKG_CONfig_PATH%输出 两个打印

/b/msys64/mingw64/lib/pkgconfig:/b/msys64/mingw64/share/pkgconfig

  • 我的假设是 cmake 无法解释 linux 风格的路径?
  • 是否可以设置 pkg-config-path ?我已经尝试过:set(PKG_CONfig_PATH ...)set($ENV{PKG_CONfig_PATH} ...) 但不成功

CMakeLists.txt

cmake_minimum_required(VERSION 3.17)
project(testing)
set(CMAKE_CXX_STANDARD 17)
set(PKG_CONfig_EXECUTABLE "B:\\msys64\\usr\\bin\\pkg-config.exe")
message(STATUS $ENV{PKG_CONfig_PATH})

FIND_PACKAGE ( PkgConfig required )
PKG_CHECK_MODULES( GTK required gtk+-3.0 ) 
INCLUDE_DIRECTORIES ( ${GTK_INCLUDE_Dirs} )
add_subdirectory(src)

系统

  • 操作系统:Win10
  • pkg-config=0.29.2
  • Visual Studio 2019(社区)
  • CMake 版本 3.20.2

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)