Linux使用Wine 安裝source insight

http://blog.chinaunix.net/space.php?uid=20587912&do=blog&id=405022

 

windows 的Souce Insight 是非常經典的C編譯器,無論是應用程序開發和編譯都是相當不錯,Linux 有Kcodes,但功能不如Source 
Insight.有一種解決方案的是在LINUX安裝Wine, 然後安裝Source Insight.


Wine編譯安裝


Wine 下載路徑:


在linux中先解壓:tar -xjfwine-1.0.1.tar.bz2
轉到wine-1.0.1目錄下:cd wine-1.0.1
運行configure:./configure
然後是運行: make & make install
安裝wine結束

編譯時提示





gcc -c -I. -I. -Ihttp://www.cnblogs.com/include -Ihttp://www.cnblogs.com/include 
-I/usr/local/include/freetype2 -I/usr/local/include  -D__WINESRC__ -D_GDI32_ 
-D_REENTRANT -fPIC -Wall -pipe -fno-strict-aliasing 
-Wdeclaration-after-statement -Wwrite-strings -Wpointer-arith  -g -O2  -o 
freetype.o freetype.c
freetype.c:166: error: 'FT_MulFix' undeclared here (not 
in a function)
freetype.c:166: warning: type defaults to 'int' in declaration 
of 'pFT_MulFix'
freetype.c: In function 
'WineEngGetOutlineTextMetrics':
freetype.c:5009: error: called object 
'pFT_MulFix' is not a function
freetype.c:5010: error: called object 
'pFT_MulFix' is not a function
freetype.c:5012: error: called object 
'pFT_MulFix' is not a function

按照網絡的提示解決辦法。去掉對pFT_MulFix的處理。




修改freetype.c

這裏的問題出現在 dlls/gdi32/freetype.c下

這裏FT_MulFix在 FT_MULFIX_INLINED模式下是 指FT_MULFIX_INLINED本身

原來的2441行
LOAD_FUNCPTR(FT_MulFix)

擴充成
#ifndef 
FT_MULFIX_INLINED
LOAD_FUNCPTR(FT_MulFix)
#endif


原來166行

MAKE_FUNCPTR(FT_MulFix)

擴充成

#ifdef FT_MULFIX_INLINED
#define pFT_MulFix 
FT_MULFIX_INLINED
#else
MAKE_FUNCPTR(FT_MulFix);
#endif


修改後然後編譯,安裝(make & make install)

成功後,運行winecfg 會彈出一個對話框進行設置.

其中wine把 ~/.wine/driver_c 當做C盤來使用.

安裝Source Insight

1.首先用Wine執行Source Insight 的安裝程序.進行安裝

   先將Si的安裝程序拷入LINUX下.然後執行安裝.

   wine Si35Setup.exe


這裏桌面顯示Source Insight安裝界面




2.用Winecfg把常用的工作目錄都虛擬成WINDOWS的盤符,如我把/home/hxy,/home/workspace 
虛擬成d:,e:




3.爲了方便調用,在RHEL桌面建一個快捷方式.

建快捷方式的調用命令是.

   wine "C:\Program Files\Source Insight 
3\Insight3.exe"

4.按Source Insight 的正常方式使用即可.



另外一種快速執行方法:

  
Wine已經在系統中關聯了所有的.exe文件,因此在系統中的.exe程序可以直接雙擊或右鍵菜單選Wine 
loader執行.



Wine中文支持的調整


  中文系統下.WinCfg的按鈕的提示是方塊,無法正常提示.Source Insight 
也無法顯示中文和輸入中文,都是亂碼.也無法用拷貝的方式加入到當中.而同樣的環境下.WINDOWS的寫字板程序能正常的顯示和用SCIM輸入中文.

  根源在WINE使用Tahoma字體顯示對話框,這個字體無法正常顯示中文,補救的方法有兩種,

方法1:

一種是修改註冊表,用regedit編輯Wine 註冊表.執行如下命令:

wine regedit

將下列項註冊表目錄設爲空.(我是逐一刪除)

\HKEY_LOCAL_MACHINE\Software\Microsoft\Windows 
NT\CurrentVersion\FontSubstitutes

重新運行winecfg 後,對話框下面的”確定“,”取消“和”應用“正常顯示.但是有一些對話框程序仍然顯示亂碼。


全英文環境需要用如下命令來執行

env LANG=zh_CN.UTF-8 wine XXX


方法2

2.1 從Windows拷貝Windows 默認字體,宋體字體,並將MS Shell Dlg的值設爲 simsun(宋體)

首先 windows xp 的 Fonts 目錄下,把 simsun.ttc (即宋體)複製到 
~/.wine/drive_c/windows/fonts 

2.2 將下列已經修改好的reg註冊表文件導入系統,主要是把對話框字體換成宋體。執行

wine regedit zh.reg






2.3 source insight 此時仍無法顯示中文,使用網上提供的gdi32.dll.so 補丁後,source Insight 
能部分顯示GBK的中文文件內容,

方法

  mv /usr/local/lib/wine/gdi32.dll.so 
/usr/local/lib/wine/gdi32.dll.so.backup

  cp gdi32.dll.so /usr/local/lib/wine/



2.4 設置riched20.dll


打開winecfg,在libraries選項頁下,添加riched20.dll和riched32.dll 
(別忘複製這兩個文件到你wine的system32目錄下) ~/.wine/drive_c/windows/system32


然後選edit,都設爲native


這樣source Insight 
的編輯區仍然無法輸入漢字(可能採用非標準控件)但是標準的文件對話框輸入框都能輸入中文,並且能拷貝到編輯區中。也可以用WINDOWS的記事本程序書寫漢字。大段拷貝過來。(但仍然有部分亂碼)但好象也只能做到這一步了,本身SI對漢字的支持就不好。
That which didn't kill me makes me stronger

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章