我想在我的C应用程序中使用GLib,它使用CMake作为构建系统。
现在,我在某种程度上混淆了如何在我的CMakeLists.txt中启用GLib。基本上,你使用find_package
命令在cmake中添加库,所以我尝试了,根据this bugreport
find_package(GLib2)
但没有找到任何东西。在GLib文档中,建议另一方面使用pkg-config
。
在基于cmake的项目中启用glib的推荐方法是什么?
答案 0 :(得分:3)
与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模块:
答案 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})