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 下载路径:



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




修改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对汉字的支持就不好。

转载于:https://www.cnblogs.com/kungfupanda/archive/2012/12/02/2798499.html

猜你喜欢

转载自blog.csdn.net/weixin_34396902/article/details/94493228