Linux使用Wine 安裝source insight

來源:互聯網
上載者:User

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 下載路徑:

http://ibiblio.org/pub/linux/system/emulators/wine/wine-1.0.1.tar.bz2

wine的安裝是簡單的configure & make & make install

編譯時間提示

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的處理。

  http://lists.nongnu.org/archive/html/freetype-cvs/2008-09/msg00003.html

和http://forum.ubuntu.com.cn/viewtopic.php?f=121&t=244486&view=next提示,對其代碼打補丁。

修改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對漢字的支援就不好。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.