• 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对汉字的支持就不好。
  • 相关阅读:
    systemd 介绍
    Goland读取配置文件--viper包
    Goland日志记录
    进程查询端口占用
    Python zip() 函数
    Jenkins权限管理(角色权限)
    Django ORM查询总结
    如何查看windows计算机重启记录
    Django ORM迁移
    Django中文乱码解决
  • 原文地址:https://www.cnblogs.com/kungfupanda/p/2798499.html
Copyright © 2020-2023  润新知