Archive for 05月, 2008
Gtkmm系列:交叉编译Window版本的Gtkmm程序示例
星期一, 05月 26th, 2008Gtkmm是跨平台的,这句话听了很多次,倒是没怎么去试过。今天就试着在Linux下用mingw
编译一个win32版本的Gtkmm测试程序试试。
test.cpp
#include <gtkmm/main.h>
#include <gtkmm/window.h>
int main(int argc, char **argv)
{
Gtk::Main main_obj(argc, argv);
Gtk::Window win;
main_obj.run(win);
return 0;
}
上面是一个简单的gtkmm窗口程序。只会跳出一个窗口,啥也不干。
平时在Linux编译是这样的:
g++ test.cpp -o test `pkg-config gtkmm-2.4 –cflags –libs`
然而我们需要将它编译成win32的程序时呢。就要用到交叉工具链mingw了。
首先在您的系统里安装mingw32软件包。在ubuntu或debian系统中可以通过apt管理工具获取
软件:
#apt-get install mingw32
安装完毕后,您系统中应该有以下命令了:
$ i586-mingw32msvc-g++ -v
Reading specs from /usr/lib/gcc/i586-mingw32msvc/3.4.5/specs
Configured with: /build/buildd/mingw32-3.4.5.20060117.1/build_dir/src/gcc-3.4.5-20060117-1/configure -v –prefix=/usr –target=i586-mingw32msvc –enable-languages=c,c++ –enable-threads –enable-sjlj-exceptions –disable-multilib –enable-version-specific-runtime-libs
Thread model: win32
gcc version 3.4.5 (mingw special)
现在您已经有了交叉编译器,但是要跨平台编译Gtkmm,这时候还需要Gtkmm的win32开发库。
恰巧 Inkscape 这个软件提供了打好包的Gtkmm win32开发库。
到inkscape的win32指导地址 下载最新的gtk28-YYMMDD.7z 文件。在这里我下载的是
gtk28-060502.7z(注意链接有可能失效)
将这个文件解压到您想放置的地方,在这里我将之解压到了 /usr/local/gtk28
创建一个链接:
ln -sf /usr/local/gtk28 /target
设置交叉编译用到的环境变量
export PKG_CONFIG_PATH=/target/lib/pkgconfig
现在,可以用交叉工具编译gtkmm的win32版本了。
i586-mingw32msvc-g++ test.cpp -o test.exe `pkg-config [...]
5*12灾难
星期一, 05月 19th, 2008地震发生以来,已经有无数的人受难,无数的人受灾。
死者已矣,而生者还具希望。我相信灾区的人能坚强地生存下去(在大家的帮助下)
而远离灾区的,应懂得珍惜所拥有的幸福。
举国哀悼,默哀三分钟.
算是随笔吧
星期五, 05月 9th, 2008最近似乎百无聊赖,整天对着机器,一天说不过十句话,也越来越木讷于言语了。
表达的欲望也只维持一瞬间,之后总觉得想说的不过尔尔,不值得写出来,于是许久
没有(写)博一次了。
不过最近倒是发生了好多事。火车相撞,公车自燃?还有南亚那的风暴。都是不好的事情。
关于奥运也是,zd啦,法国家乐福啦。之前关于这些敏感话题都想说些什么的。不过竟然找
不到能发表的地方。回来想想,算了。我也不想只做个口头上的暴君。发现越如此却就越消极。
但我又能做什么呢?我没有答案。现实还有问题待我去处理哩。所以圣火来临我都兴趣不大,况且
比较烦往人多的地方挤。再次,我可没假。
开源也许是我的一个精神庇护场所。 不过这样一个人写程序也是让人很是郁闷的。早前GCC4.3的转换
害我在编译这段吃了不少苦头。这丫也太语法严格了点。不过也许是好事。
今天还看到自己博客的一个外部链接,Henry的文章 , 引用了我之前对Ubuntu半年一次的抱怨。我得
告诉他,我已经不抱怨了,因为我把系统转到ARCHLinux去了。玩累了半年升一次的游戏了。现在天天
升。
gmlive 0.20.2
星期六, 05月 3rd, 2008gmlive 0.20系列的版本,0.20.2有如下更新。
1.添加全屏功能(工具栏里有一个全屏按钮,也可以按F11来回切换)
2.修正GCC4.3编译。
3.BUG修正。
0.20.2是继0.20版本以来的更新,主要是在0.20的版本上修正BUG和小范围
添加新功能。因此有需要的用户可以适当更新。而下一版本0.21仍在开发中。
敬请期待。