glib编译与实战

文章目录

  • 下载
  • 编译
  • 修正
  • 实战
  • 参考

下载

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)

glib编译与实战_第1张图片

参考

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

你可能感兴趣的:(工具,c++)