在CMake项目中包含glib.h

Lap*_*Lap 6 glib cmake

尝试使用CMake在Ubuntu中编译库,其中一个文件包含glib.h. 软件包已安装并且glib.h已安装/usr/include/glib-2.0/glib.h.

我添加了以下但编译器仍然找不到glib.h.

FIND_PACKAGE(glib-2.0)
IF (glib-2.0_FOUND)
    INCLUDE_DIRECTORIES(${glib-2.0_INCLUDE_DIR})
ENDIF()
Run Code Online (Sandbox Code Playgroud)

有谁知道我想要寻找什么包?

我最终使用的实际代码是

find_package(PkgConfig REQUIRED)
pkg_check_modules(GLIB_PKG glib-2.0)

if (GLIB_PKG_FOUND)
    message(Found glib-2.0)
include_directories(${GLIB_PKG_INCLUDE_DIRS})
Run Code Online (Sandbox Code Playgroud)

Laz*_*abs 5

我建议您通过链接:How package tracking works

作为参考,您可以查看此CMake 模块以查找 glib2。

您感兴趣的线路是:

find_path(GLIB_INCLUDE_DIR NAMES glib.h PATH_SUFFIXES glib-2.0)
Run Code Online (Sandbox Code Playgroud)

我建议您将此模块复制到您的<project root>/cmake/目录中。然后,find_package在您的根 CMakeLists.txt 文件中使用 a 。

  • 我相信这可能是https://github.com/gammu/gammu/blob/master/cmake/FindGlib.cmake (3认同)