1 安装glib库所需要的依赖库:
libffi-3.0..tar.gz
glib-2.40..tar.xz
安装依赖库libffi:
tar xf libffi-3.0..tar.gz
cd libffi-3.0.
./configure
make
make install
配置环境变量:
vim /etc/profile
添加下面的内容:
export LIBFFI_CFLAGS=-I/usr/local/lib/libffi-3.0./include
export LIBFFI_LIBS=/usr/local/lib/libffi.la
export C_INCLUDE_PATH=/usr/local/lib/libffi-3.0./include/
 
使配置文件立即生效
source /etc/profile
 
安装glib库:
configure 配置选项
--enable-debug=no 选项:默认是mini模式,在release的时候应该使用该选项
--disable-included-printf 选项:这个选项要谨慎使用,可能会造成某些 printf 家族的函数不能使用 tar xf glib-2.40..tar.xz
cd glib-2.40.
./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("");
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 ;
}
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 的最后屏障

glib-2.40编译安装的更多相关文章

  1. php5.6.40编译安装

    yum install gcc bison bison-devel zlib-devel libmcrypt-devel mcrypt mhash-devel openssl-devel libxml ...

  2. 编译安装lamp (php)

    用户账号及权限管理 用户账号:'user'@'host' user: 用户名 host: 此用户访问mysqld服务时允许通过哪些主机远程创建连接: host类型:IP.网络地址.主机名.通配符(%和 ...

  3. Centos7.5 源码编译安装PHP

    安装依赖 yum -y install epel-release yum -y install  gcc gcc-c++ make pcre pcre-devel zlib zlib-devel op ...

  4. 编译安装mysql-5.6.40

    编译安装mysql-5.6.40 环境说明 系统版本     CentOS 7.2 x86_64 软件版本     mysql-5.6.40 [root@db01 ~]# mkdir -p /serv ...

  5. 编译安装gimp插件之Mathmap(流水记录)

    本文为在Fedora 20下编译安装Mathmap1.3.5的编译过程,如果你仅仅需要快速的安装Mathmap,那么请拉至文末的"快速安装" 其实,过程还是很有趣的,充满Error ...

  6. 编译安装MariaDB-10.0.21

    一.源码编译安装gcc-5.1.0 1.下载gcc源码包 Download (HTTP): http://ftpmirror.gnu.org/gcc/gcc-5.2.0/gcc-5.2.0.tar.b ...

  7. 编译安装PHP7并安装Redis扩展Swoole扩展

    编译安装PHP7并安装Redis扩展Swoole扩展 在编译php7的机器上已经有编译安装过php5.3以上的版本,从而依赖库都有了 本php7是编译成fpm-php 使用的, 如果是apache那么 ...

  8. 转-httpd 2.4.4 + mysql-5.5.28 + php-5.4.13编译安装过程

    一.编译安装apache 1.解决依赖关系 httpd-2.4.4需要较新版本的apr和apr-util,因此需要事先对其进行升级.升级方式有两种,一种是通过源代码编译安装,一种是直接升级rpm包.这 ...

  9. [转] 编译安装GCC

    Linux下编写C/C++程序自然缺不了一个优秀的编译器,Linux下比较常见的自然是GCC了. 2015年GCC也出到了5.2.0版本,对于C++11/14也有了更好的支持了. 所以,今天我们就来说 ...

随机推荐

  1. hd acm1013

    Problem Description(数根) The digital root of a positive integer is found by summing the digits of the ...

  2. Nginix安装教程(Ubuntu)

    安装gcc g++的依赖库 #apt-get install build-essential #apt-get install libtool   安装 pcre依赖库 #sudo apt-get u ...

  3. Luogu-4410 [HNOI2009]无归岛

    裸的仙人掌最大独立子集,结果一个zz的错误让我调了好久... \(-inf\)开始设为\(0x7fffffff\)结果\(A_i\)有负数一加就炸了 #include<cstdio> #i ...

  4. POJ 1639 Picnic Planning:最小度限制生成树

    题目链接:http://poj.org/problem?id=1639 题意: 给你一个无向图,n个节点,m条边,每条边有边权. 让你求一棵最小生成树,同时保证1号节点的度数<=k. 题解: 最 ...

  5. jQuery绑定事件的四种方式区别

    jQuery中提供了四种事件监听方式,分别是bind.live.delegate.on,对应的解除监听的函数分别是unbind.die.undelegate.off.在开始看他们之前 一:bind(t ...

  6. .net Core 相关问题

    1.Vs中注释生成xml文档文件 项目->属性->生成->输出->勾选“XML文档文件”->保存  就完成. 保存后出现没有勾选情况,直接用txt打开.csproj文件加 ...

  7. Unity3D之Mesh【创建动态Mesh的学习网站】

    觉得不错!做记录! 1.http://gamerboom.com/archives/76484 2.http://jayelinda.com/ 3.几个私人的博客,可能有启发:http://blog. ...

  8. 利用simhash计算文本相似度

    摘自:http://www.programcreek.com/java-api-examples/index.php?source_dir=textmining-master/src/com/gta/ ...

  9. linux命令学习笔记(9):touch 命令

    linux的touch命令不常用,一般在使用make的时候可能会用到,用来修改文件时间戳,或者新建一个不存在的文件. .命令格式: touch [选项]... 文件... .命令参数: -a 或--t ...

  10. linux命令学习笔记(17):whereis 命令

    whereis命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b).man说明文件(参数-m)和 源代码文件(参数-s).如果省略参数,则返回所有信息. 和find相比,whereis查找的速度 ...