您的位置:首页 > 运维架构 > Linux

Linux使用Wine 安装source insight

2012-12-02 18:25 555 查看
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 的正常方式使用即可.



[align=left] [/align]
[align=left]另外一种快速执行方法:[/align]
[align=left]
[/align] 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对汉字的支持就不好。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: