zoukankan      html  css  js  c++  java
  • Linux下静态编译glib

     glib是gtk下的一个库,也是开发中常用的一个工具库。glib提供的基本的数据结构和算法(只说我现在用到的),例如更有效的内存管理、配置文件处理、异步队列、哈希表、字符串处理、编码转换等。它就像野外生存的瑞士军刀,一个日常开发过程中不可多得的利刃。当然完全抛弃,独立实现也可以,我之前就是这样做的,各有好处。

      但是,在服务器操作系统中并不总自带有glib库,总要经常安装,因此如果能编译成静态库连接到程序,这样最好。经过一番努力,我已经成功,现把简要过程写在下面,随意分享。

    1.下载、编译、安装

    wget http://ftp.gnome.org/pub/gnome/sources/glib/2.22/glib-2.22.5.tar.gz

    tar zxvf glib-2.22.5.tar.gz

    cd glib-2.22.5

    ./configure --prefix=/usr/local/glib --enable-static --disable-shared CFLAGS="-static"

    make && make install

    说明:

    --prefix指定安装到目录,不要与系统中已安装的glib混淆。

    --enable-static --disable-shared CFLAGS="-static"使得编译出静态库.a文件。

    重点

    export PKG_CONFIG_PATH=/usr/local/glib/lib/pkgconfig:$PKG_CONFIG_PATH

    pkg-config --libs glib-2.0 gthread-2.0

    pkg-config --cflags glib-2.0 gthread-2.0

    说明:

    第一句使用是让pkg-config找到新编译的glib库及头文件,后两句是通过pkg-config分别获取头文件地址和库地址。

    此外,也可将--prefix/lib/pkgconfig下的文件拷贝到/lib/pkgconfig下,让pkg-config自动搜索到,但会覆盖之前已安装在标准目录下的的glib的相关文件。

    2.使用与测试

     编辑main.c

    复制代码
     1 #include <stdio.h>
     2 #include <glib.h>
     3 
     4 void main()
     5 {
     6         g_thread_init(NULL);
     7         puts("hello");
     8         printf("Glib version: %u.%u.%u
    
    ",
     9                 glib_major_version,
    10                 glib_minor_version,
    11                 glib_micro_version);
    12 }
    复制代码

    编辑test.sh:

    #! /bin/bash

    export PKG_CONFIG_PATH=/usr/local/glib/lib/pkgconfig:$PKG_CONFIG_PATH

    gcc main.c -o glibtest `pkg-config --libs glib-2.0 gthread-2.0` `pkg-config --cflags glib-2.0 gthread-2.0`

    执行

    chmod +x test.sh

    ./test.sh

    ./glibtest

    输出

    hello

    Glib version: 2.22.5

    3.使用

    在调用glib库函数之前需要调用g_thread_init(NULL)(涉及到线程操作时),但在glib-2.32以后则不需要此调用,可直接调用与线程相关的操作。

  • 相关阅读:
    差分放大电路分析及运放单双电源供电对输出的影响
    反相加法器与同相加法器对比分析
    高频变压器绕组绕制方式与漏感大小分析与计算
    高频变压器绕组绕制方式与分布电容大小分析与计算
    反激电路开关管电流尖峰分析
    涡流效应产生原因及分析
    磁路-电路通用变换方法及电路对偶变换
    反激电路RCD缓冲电路参数设计分析
    STM32 CUBE
    TEB 系统综合误差
  • 原文地址:https://www.cnblogs.com/htlee/p/3238540.html
Copyright © 2011-2022 走看看