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 © 2025
京ICP备05028076号