https://ftp.acc.umu.se/pub/GNOME/sources/glib/
cd glib
mkdir build
meson --prefix=/home/glib build
ninja -C build
ninja -C build install
meson.build:1:0: ERROR: Meson version is 0.53.2 but project requires >= 0.60.0
apt install python3-pip
pip3 install --user meson
meson -v
pip show meson
参考入口
CMakeLists.txt
# CMake最低版本号要求
cmake_minimum_required (VERSION 3.0.0)
# 设置工程名称
set(PROJECT_NAME test_glib)
# 设置工程版本号
set(PROJECT_VERSION "1.0.0.0" CACHE STRING "默认版本号")
# 项目信息
project (${PROJECT_NAME} VERSION ${PROJECT_VERSION} LANGUAGES C CXX)
# 语言规范
set(CMAKE_C_STANDARD 99)
set(CMAKE_CXX_STANDARD 11)
# C/CXX编译flags
set(COMMON_FLAGS "-Wno-unused-parameter -fexceptions")
set(CMAKE_C_FLAGS_DEBUG "$ENV{CFLAGS} ${COMMON_FLAGS} -O0 -ggdb")
set(CMAKE_C_FLAGS_RELEASE "$ENV{CFLAGS} ${COMMON_FLAGS} -O2")
set(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} ${COMMON_FLAGS} -O0 -ggdb")
set(CMAKE_CXX_FLAGS_RELEASE "$ENV{CXXFLAGS} ${COMMON_FLAGS} -O2")
# 编译环境参数
option(ENABLE_TEST "Whether to enable unit tests" ON)
# print build options
message(STATUS "########## OPTION LISTS BEGIN ##########")
message(STATUS "CMAKE_BUILD_TYPE = ${CMAKE_BUILD_TYPE}")
message(STATUS "ENABLE_TEST = ${ENABLE_TEST}")
message(STATUS "########### OPTION LISTS END ###########")
# 依赖头文件
include_directories(/workspace/glib/glib/include/glib-2.0
/workspace/glib/glib/lib/x86_64-linux-gnu/glib-2.0/include)
link_directories(/workspace/glib/glib/lib/x86_64-linux-gnu)
#指定生成可执行文件
add_executable(test_glib main.c shape.c square.c)
target_link_libraries(test_glib gobject-2.0 glib-2.0 gio-2.0)
gobject的理解:
https://blog.csdn.net/yanbixing123/article/details/52970925
http://garfileo.is-programmer.com/2011/2/27/the-analog-of-classed-type-based-gobject.24798.html
https://blog.csdn.net/m0_67686953/article/details/131080395