源碼編譯
1、先安裝apple-gcc42,Mac osx自帶的 llvm-gcc,編譯後,無法運行wine。
1 | sudo port install apple-gcc42 |
2、下載wine源碼
1 2 | git clone git: //source.winehq.org/git/wine.git ~/wine-git cd ~/wine-git |
3、安裝 X11/XQuartz ,官網下載 XQuartz
4、我是用的是1.7.5編譯的
1 | git checkout -b 1.7 . 5 wine- 1.7 . 5 |
5、切換編譯工具爲 apple-gcc42
1 2 | sudo port select gcc apple-gcc42 hash gcc |
如果想恢復蘋果默認的llvm-gcc:
1 2 | sudo port select gcc none hash gcc |
6、編譯源碼
1 2 | ./configure --verbose --x-includes=/usr/X11/ include --x-libraries=/usr/X11/lib make |
7、安裝
1 2 3 4 | make install # 卸載 make uninstall |
中文亂碼解決
1、參考下面的文章:
http://linfan.info/blog/2012/03/01/wine-mac/
字體最好是用 SimSun.ttc,宋體,可以從windows 中提取。
2、通過以上註冊表中的方式,仍然會存在亂碼,是字符集的問題,可以參考下面文章:
http://forum.ubuntu.org.cn/viewtopic.php?t=291611&p=2719632
dlls/gdi32/freetype.c b/dlls/gdi32/freetype.c 源碼中添加一句,最新源碼中的位置有所變化,如下:
1 2 3 4 5 6 7 8 9 10 11 | diff --git a/dlls/gdi32/freetype.c b/dlls/gdi32/freetype.c index fb4f2af..5bc1393 100644 --- a/dlls/gdi32/freetype.c +++ b/dlls/gdi32/freetype.c @@ - 5073 , 6 + 5073 , 7 @@ static HFONT freetype_SelectFont( PHYSDEV dev, HFONT hfont, UINT *aa_flags ) GetObjectW( hfont, sizeof(lf), &lf ); lf.lfWidth = abs(lf.lfWidth); + lf.lfCharSet = GetTextCharset(dc); can_use_bitmap = GetDeviceCaps(dev->hdc, TEXTCAPS) & TC_RA_ABLE; |
通過以上努力,基本可以解決亂碼問題,當仍會有部分字體亂碼,主要原因是相關程序的字體,無法找到,如果知道程序使用的字體,可以通過 #1 中提到的註冊表的方式,添加。
歡迎轉載:http://www.yinqisen.cn/blog-293.html