[20160510]最新:gcc-5.3编译wine已修复。
gentoo升级到gcc-5.3后,编译最新的wine,始终有问题(详见:https://bugs.gentoo.org/show_bug.cgi?id=574044)。
这是gcc-5.3的一个bug,一直没有修复,解决办法无非是给gcc或者wine打补丁,上述链接中也给出了这两种方案。
给wine打补丁,每次wine版本升级之后,需要重新打,比较麻烦,原来我一直这样做。
直接给gcc打补丁,也比较麻烦,后来有人给出了一个傻瓜式方案,简单的多了:
sudo mkdir -p /etc/portage/patches/sys-devel/gcc-5.3.0 curl https://574044.bugs.gentoo.org/attachment.cgi?id=428646 | sudo tee /etc/portage/patches/sys-devel/gcc-5.3.0/wine-fix.patch sudo emerge -1 gcc-5.3.0 sudo emerge -1u wine
这样,wine就可以直接安装了。
但是这样做还有一个问题,编译出来的wine,运行QQ的话,还是不行,打开后会直接崩溃。yuking说是编译参数CFLAGS的问题,不能用O2,必须用O0才行,有人遇到过这个问题。
因此,编译wine时,需要将CFLAGS修改为O0。每次编译时都去修改,也比较麻烦。后来搜索出了一个单独给软件设置参数的方法:
sudo mkdir /etc/portage/env sudo echo "CFLAGS=\"-O0 -march=native -fomit-frame-pointer -pipe\"" > /etc/portage/env/wine sudo echo "=app-emulation/wine-9999 wine" > /etc/portage/package.env sudo emerge -1u wine
当然,上面有些参数根据你的实际情况填写。