f90 如何产生64位的dll文件_Windows 64 位环境下 GTK2.0 的theme应用

46469e6cd9e36797020912b03c060b50.png

GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG

GTK是个令人又爱又恨的东西,我想之所以还没有彻底被Qt消灭,除了兼容性的考虑,再就是那些漂亮的主题了。在Linux环境下Qt使用GTK的主题非常容易,但是Windows环境就比较麻烦了。笔者5年前写过一篇文章,聊了聊Windows下GTK的使用以及与Qt的结合(Jerry Jho:移植QGtkStyle到OSX和Windows),但如今64位系统已经普及,GTK官网提供的32位bundle已经不适用了。

幸好我们有了MSYS2这套环境,可以让老树发新芽。国内用户可以在清华的镜像站安装MSYS2并配置国内的源。

Tsinghua Open Source Mirror​mirrors.tuna.tsinghua.edu.cn
7c8f7e03bb3775c986d0ee6cd4533cc9.png

MSYS2安装好之后,启动mingw64环境,运行下面的命令即可安装GTK2以及编译器,非常方便。

pacman -S mingw64/mingw-w64-x86_64-gtk2
pacman -S mingw64/mingw-w64-x86_64-gcc
pacman -S mingw64/mingw-w64-x86_64-pkg-config
pacman -S mingw64/mingw-w64-x86_64-diff
pacman -S make
pacman -S msys/msys2-w32api-runtime

这时候可以运行gtk-demo查看gtk是否能正常运行。

MSYS2自带的gtk主题比较少,因此需要自己编译。例如我最喜欢的nodoka主题:

wget http://deb.debian.org/debian/pool/main/g/gtk-nodoka-engine/gtk-nodoka-engine_0.7.0.orig.tar.gz
tar zxf gtk-nodoka-engine_0.7.0.orig.tar.gz
cd gtk-nodoka-engine-0.7.0
./configure
make
make install

这里需要注意,由于libtools在mingw环境下的适配问题,你会发现一大堆warning之后只产生了一个静态库(毕竟是个老古董了)。所以需要手工编译、安装动态库,这样才能用

gcc -shared .libs/*.o -o libnodoka.dll `pkg-config --libs gtk+-2.0`
cp libnodoka.dll /mingw64/lib/gtk-2.0/2.10.0/engines/

由于gtk-chtheme无法在最新的gcc 10下编译通过,只好手工指定主题文件了

export GTK2_RC_FILES=/mingw64/share/themes/Nodoka-Silver/gtk-2.0/gtkrc

再次运行gtk-demo,可以看到nodoka主题已经成功的使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值