C Programer  - 讨论区

标题:glibmm简介与示例程序

2014年02月14日 星期五 09:16

glib本身使用C语言开发的,其也只提供C语言的API。glibmm是glib的C++语言封装,是对C++ STL的一些补充。官方文档这样介绍:

glibmm is the official C++ interface for the popular cross-platform library Glib. It provides non-UI API that is not available in standard C++ and makes it possible for gtkmm to wrap GObject-based APIs.

CentOS系列操作系统自带glibmm的安装包,执行如下命令即可安装:

sudo yum install -y glibmm24-devel

下面是一个计算MD5校验值的示例程序,使用了C++11的部分特性:

#include <iostream>
#include <string>
#include <glibmm.h>

using namespace std;
using namespace Glib;

int main(int argc,char **argv) {
    auto file = "/etc/hosts";
    if(argc == 2) {
            file=argv[1];
    }
    try {
        auto c=file_get_contents(file);
        auto cs=Checksum::compute_checksum(
                Checksum::CHECKSUM_MD5,c);
        cout << cs << endl;
    } catch (FileError &e) {
        cout << "ERROR: " << e.what() << endl;
    }
    return 0;
}

示例Makefile:

CURL_FLAGS = `pkg-config --cflags --libs glibmm-2.4` 
all: glibmm_checksum
glibmm_checksum: glibmm_checksum.cpp
	g++ -std=c++11 -o glibmm_checksum ${CURL_FLAGS} glibmm_checksum.cpp
clean:
	rm -f glibmm_checksum *.o 

参考资料:

https://developer.gnome.org/glibmm/2.35/

https://developer.gnome.org/glibmm/2.35/classGlib_1_1Checksum.html

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2022

    京ICP备05028076号