将CMib2与CMake一起使用的推荐方法是什么?

时间:2016-04-26 14:38:10

标签: cmake glib

我想在我的C应用程序中使用GLib,它使用CMake作为构建系统。

现在,我在某种程度上混淆了如何在我的CMakeLists.txt中启用GLib。基本上,你使用find_package命令在cmake中添加库,所以我尝试了,根据this bugreport

find_package(GLib2)

但没有找到任何东西。在GLib文档中,建议另一方面使用pkg-config

在基于cmake的项目中启用glib的推荐方法是什么?

6 个答案:

答案 0 :(得分:3)

using CMake with GTK

上查看我的回答

与GLib几乎相同。

答案 1 :(得分:3)

在你的CMakeLists.txt中:

=

答案 2 :(得分:3)

自CMake 3.4(于2016年7月发布)以来,myCustomClass: not(.mycheckboxClass) { ... }支持pkg_check_modules参数,从而将依赖项配置简化为单个IMPORTED_TARGET语句,它将处理所有必需的编译器和链接器选项:

target_link_libraries

(上面我使用了名称find_package(PkgConfig REQUIRED) pkg_check_modules(deps REQUIRED IMPORTED_TARGET gtk+-3.0) target_link_libraries(target PkgConfig::deps) ,因为一个人可以用一个deps语句列出多个依赖项)

答案 3 :(得分:2)

GLib(以及使用autotools的各种其他C库)提供了一个用于声明的pkg-config文件:

  • 编译器标志
  • 链接器标志
  • 构建时变量
  • 依赖关系

使用CMake发现这些库所在的适当方法是使用FindPkgConfig CMake模块:

https://cmake.org/cmake/help/v3.0/module/FindPkgConfig.html

答案 4 :(得分:1)

我一直在处理您可能想要尝试的CMake modules for GNOME(包括one for GLib)。基本上,只需find_package(GLib),您就可以使用glib-2.0导入的目标链接到它。

答案 5 :(得分:0)

还有另一个版本,包含多个答案以及对我有效的方法(在Linux上)!

cmake_minimum_required(VERSION 2.6.4)
project(my_proj)

find_package(PkgConfig REQUIRED)
pkg_search_module(GLIB REQUIRED glib-2.0)

include_directories(${GLIB_INCLUDE_DIRS})
link_directories(${GLIB_LIBRARY_DIRS})

add_executable(my_proj main.c)

add_definitions(${GLIB_CFLAGS_OTHER})
target_link_libraries(my_proj ${GLIB_LIBRARIES})