glib-2.40编译安装
1 安装glib库所需要的依赖库:
libffi-3.0.0.tar.gz glib-2.40.0.tar.xz
安装依赖库libffi:
tar xf libffi-3.0.0.tar.gz cd libffi-3.0.0 ./configure make make install
配置环境变量:
vim /etc/profile
添加下面的内容:
export LIBFFI_CFLAGS=-I/usr/local/lib/libffi-3.0.0/include export LIBFFI_LIBS=/usr/local/lib/libffi.la export C_INCLUDE_PATH=/usr/local/lib/libffi-3.0.0/include/
使配置文件立即生效
source /etc/profile
安装glib库:
configure 配置选项 --enable-debug=no 选项:默认是mini模式,在release的时候应该使用该选项 --disable-included-printf 选项:这个选项要谨慎使用,可能会造成某些 printf 家族的函数不能使用 tar xf glib-2.40.0.tar.xz cd glib-2.40.0 ./configure --enable-debug=no make make install
配置环境变量:
vim /etc/profile
添加下面的内容:
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
使配置文件立即生效
source /etc/profile
2 使用 glib 库,测试字符串使用为例
vim test.c
#include <stdio.h> #include <glib.h> int main(int argc, char *argv[]) { GString *teststr = NULL; teststr = g_string_new("1234"); printf ("str is:%s\n", teststr->str); printf ("len is:%d\n", teststr->len); g_string_free (teststr, TRUE); teststr = NULL; g_return_val_if_fail (teststr, NULL); return 0; }
gcc -I /usr/local/include/glib-2.0/ -I /usr/local/lib/glib-2.0/include/ -L/usr/local/lib -lglib-2.0
./a.out
这里运行可以发现断言会被打印,glib提供了关闭断言的开关
在使用glib库的程序中屏蔽断言需要在编译时加入开关
gcc -I /usr/local/include/glib-2.0/ -I /usr/local/lib/glib-2.0/include/ -DG_DISABLE_CAST_CHECKS -DG_DISABLE_ASSERT -DG_DISABLE_CHECKS -lglib-2.0
运行程序后断言不打印
注意:使用glib库的时候最好是不要关闭断言,因为断言是预防程序 coredump 的最后屏障