首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

GLib 庫入門:跨平台 C 開發基石——安裝配置與首個示例

     編輯:關於C語言

什麼是 GLib

GLib 是 GTK+ 和 GNOME 的核心基礎庫,提供跨平台的數據結構(鏈表、哈希表、樹等)、工具函數(字符串、文件、線程、主循環)、對象系統(GObject)等。最初為 GTK+ 內部模塊,後獨立發布,支持 Linux/Unix、Windows、macOS 等。

安裝配置

FreeBSD Ports

cd /usr/ports/devel/glib20
make install clean

Linux (Debian/Ubuntu)

sudo apt-get install libglib2.0-dev

Windows (MSYS2/MinGW)

pacman -S mingw-w64-x86_64-glib2

編譯鏈接

使用 pkg-config 自動獲取編譯標誌:

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

核心類型系統

GLib 定義固定寬度類型,消除平台差異:

  • gint/guint、glong/gulong、gint64/guint64
  • gchar、guchar、gfloat、gdouble
  • gboolean(TRUE/FALSE)
  • gpointer(void* 別名)

首個示例:隨機數與計時器

#include <glib.h>

int main(int argc, char *argv[]) {
    GRand *rand = g_rand_new();          // 創建隨機數生成器
    GTimer *timer = g_timer_new();       // 創建計時器
    
    // 生成 20 個 1-100 隨機數
    for (int n = 0; n < 20; ++n)
        g_print("%d\t", g_rand_int_range(rand, 1, 100));
    g_print("\n");
    g_rand_free(rand);
    
    // 計時 3000 萬次累加
    g_timer_start(timer);
    gint x = 0;
    for (int i = 0; i < 10000; ++i)
        for (int j = 0; j < 3000; ++j)
            ++x;
    g_timer_stop(timer);
    
    g_print("%ld\tall: %.2f seconds used!\n", x, g_timer_elapsed(timer, NULL));
    g_timer_destroy(timer);
    return 0;
}

運行結果

96  24  52  87  52  16  62  17  78  62  76  6  33  53  87  3  40  69  20  33 
30000000	all: 0.08 seconds used!

關鍵 API 速查

功能函數
隨機數g_rand_new(), g_rand_int_range(), g_rand_free()
計時器g_timer_new(), g_timer_start(), g_timer_stop(), g_timer_elapsed(), g_timer_destroy()
輸出g_print()(類 printf,跨平台)

後續學習路徑

  1. GObject 對象系統:信號、屬性、繼承、接口
  2. 容器:GList、GQueue、GHashTable、GTree
  3. 字符串工具:GString、GStrv、字符集轉換
  4. 主循環:GMainLoop、事件源、異步 IO
  5. 線程池:GThreadPool、異步任務

總結

GLib 為 C 語言補齊了「標準庫不足」的短板,是構建跨平台、可維護、高性能應用的利器。掌握其類型系統與核心模塊,事半功倍。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved