You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows环境下CMake通过PkgConfig无法检测到已安装的glib-2.0

Windows下CMake无法检测Conan安装的glib的解决方法

核心原因

Windows环境默认没有pkg-config工具,且Conan安装的glib包默认存放在本地缓存中,CMake的pkg_search_module无法自动识别其路径。以下是几种可行的解决方式:

方法1:使用Conan CMake工具链自动配置(推荐)

这种方式无需手动调整路径,让Conan全权处理依赖配置:

  1. 在项目根目录创建conanfile.txt:
[requires]
glib/2.78.3

[generators]
CMakeDeps
CMakeToolchain
  1. 打开终端进入项目目录,执行安装命令:
conan install . --output-folder=build --build=missing
  1. 用CMake构建时指定工具链文件:
cmake -S . -B build -DCMAKE_TOOLCHAIN_FILE=build/conan_toolchain.cmake -DCMAKE_BUILD_TYPE=Release
cmake --build build

完成后CMake会自动识别Conan安装的glib,无需修改原有pkg_search_module语句(或直接改用find_package)。

方法2:手动配置pkg-config路径

若坚持使用pkg_search_module,需让pkg-config找到glib的.pc文件:

  1. 定位Conan中glib的缓存路径,格式为:
    C:\Users\<你的用户名>\.conan2\packages\glib\2.78.3\<编译配置>\res\lib\pkgconfig
    (<编译配置>为你的编译器标识,比如msvc-193-x86_64)
  2. 临时设置环境变量(终端内生效):
set PKG_CONFIG_PATH=C:\Users\<你的用户名>\.conan2\packages\glib\2.78.3\msvc-193-x86_64\res\lib\pkgconfig
  1. 确保已安装pkg-config工具,可通过Chocolatey安装:
choco install pkgconfiglite
  1. 重新运行CMake,pkg_search_module(GLIB REQUIRED glib-2.0)即可正常检测到包。

方法3:改用CMake的find_package

  1. 按方法1创建conanfile.txt并执行conan install,生成CMakeDeps配置文件
  2. 修改CMakeLists.txt,替换pkg_search_module语句:
find_package(glib-2.0 REQUIRED)
  1. 链接库时使用Conan生成的目标:
target_link_libraries(你的项目名 PRIVATE glib-2.0::glib-2.0)

这种方式更适配CMake生态,无需依赖pkg-config工具。

额外检查项

  • 执行conan list glib/2.78.3确认包已成功安装
  • 使用Visual Studio时,需打开对应的Developer Command Prompt执行命令,避免环境变量不匹配
  • 检查CMakeLists.txt中pkg_search_module的包名是否为glib-2.0(注意不要写成glib)

内容的提问来源于stack exchange,提问作者Jonathon Quick

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 21:52:55