Pkg-config 在 CMake 运行期间找不到 glib-2.0

问题描述 投票:0回答:1

我着手一个小项目,其中已经编写了 CMakeLists.txt 并尝试在

Ubuntu MATE 20.04
上构建它。通过
apt
安装库后,我遇到了丢失的
glib-2.0
:

Make Error at /snap/cmake/1334/share/cmake-3.27/Modules/FindPkgConfig.cmake:607 (message):
  A required package was not found
Call Stack (most recent call first):
  /snap/cmake/1334/share/cmake-3.27/Modules/FindPkgConfig.cmake:829 (_pkg_check_modules_internal)
  CMakeLists.txt:9 (pkg_check_modules)

首先我检查它是否安装了

apt search libglib2.0 | grep installed
(常规和开发版,以防万一):

libglib2.0-0/focal-updates,focal-security,now 2.64.6-1~ubuntu20.04.6 amd64 [installed]
libglib2.0-bin/focal-updates,focal-security,now 2.64.6-1~ubuntu20.04.6 amd64 [installed]
libglib2.0-cil/focal,now 2.12.40-3 amd64 [installed]
libglib2.0-cil-dev/focal,now 2.12.40-3 amd64 [installed]
libglib2.0-data/focal-updates,focal-updates,focal-security,focal-security,now 2.64.6-1~ubuntu20.04.6 all [installed]
libglib2.0-dev/focal-updates,focal-security,now 2.64.6-1~ubuntu20.04.6 amd64 [installed]
libglib2.0-dev-bin/focal-updates,focal-security,now 2.64.6-1~ubuntu20.04.6 amd64 [installed]
libglib2.0-doc/focal-updates,focal-updates,focal-security,focal-security,now 2.64.6-1~ubuntu20.04.6 all [installed]
libglib2.0-tests/focal-updates,focal-security,now 2.64.6-1~ubuntu20.04.6 amd64 [installed]

pkg-config
显示为
pkg-config --list-all | grep glib
:

gio-unix-2.0                   GIO unix specific APIs - unix specific headers for glib I/O library
glib-2.0                       GLib - C Utility Library
dbus-c++-glib-1                libdbus-c++-glib - Native C++ bindings for D-Bus (Glib Mainloop)
dbus-glib-1                    dbus-glib - GLib integration for the free desktop message bus
gio-2.0                        GIO - glib I/O library
glib-sharp-2.0                 GLib - GLib

并且

CMakeLists.txt
有线路可以找到它(我猜这就是它失败的地方):

include(FindPkgConfig)
pkg_check_modules (GLIB REQUIRED IMPORTED_TARGET glib-2.0)
pkg_check_modules (DBUS REQUIRED IMPORTED_TARGET dbus-1)
pkg_check_modules (SQLITE3 REQUIRED IMPORTED_TARGET sqlite3)
pkg_check_modules (JSON-C REQUIRED IMPORTED_TARGET json-c)

我尝试询问 ChatGPT,它建议在执行 CMake 时将完整路径传递给

GLIB_LIBRARY
变量:

cmake -DGLIB_LIBRARY=/usr/lib/x86_64-linux-gnu/libglib-2.0.so

正如你可能猜到的,这并没有带我去任何地方。

我很确定需要在

CMakeLists.txt
中完成一些配置,所以我将查看 CMake 文档。

将不胜感激任何线索/想法。

cmake pkg-config
1个回答
0
投票

我决定尝试注释掉一些与 CMake 相关的文件行。在 toolchain 文件

linux-x86_64.cmake
中,我删除了这一行:

set(ENV{PKG_CONFIG_LIBDIR} "${CMAKE_SYSROOT}/usr/lib/pkgconfig:${CMAKE_SYSROOT}/usr/share/pkgconfig")

我猜它搞乱了

pkg-config
的行为。

© www.soinside.com 2019 - 2024. All rights reserved.