在Linux(ubuntu)系统中安装wine工具,然后再安装source insight工具,以方便代码的阅读和编辑。
但是,用惯了si的人都知道,有个牛人为si开发了一个控件,叫做tabsihost(也有人叫做tabsiplus),可以在si的界面下显示出所有已经打开的窗口标签,可以随时进行切换,大大提高了代码阅读和编辑的便利性。windows下,我们将这个tabsihost工具配合si一起使用,那绝对是如鱼得水!
于是,在windows下找到tabsihost的目录,直接拷贝一份到wine里面,就放在./wine/driver_c/Program Files/Source Insight目录下。
不过,当我想要将tabsihost同样在linux下运行起来时,遇到了一个错误,提示mfc42.dll文件丢失,tabsihost无法执行!
当然,这个问题倒不是很难,简单的复制一个到系统目录下即可。于是,跑到windows的目录下,找到mfc42.dll这个文件,拷贝出来,再跑到wine的系统目录下(/.wine/driver_c/windows/system32)进行黏贴。按理说应该就OK了。于是再次执行wine tabsihost,意外的是,错误依然存在!
这下就不懂了。明明已经将该文件拷贝进去了,可是为啥还是提示错误呢?
于是去网上查了半天,没有找到什么提示和线索。正要准备放弃时,忽然在一篇帖子中看到一句话,说到mfc42.dll也有不同版本的区分,不同版本下的接口是不一致的。这下提醒了我,既然mfc42.dll本身有版本的区别,那么不同windows系统下的mfc42.dll是不是也有区别呢?
我手中的windows系统是win10,那它其中的mfc42.dll肯定也是最新的版本。而wine中估计识别不了这么新的,那我就换一个旧一点的试试吧。于是跑到windows xp的系统下,重新拷了一个mfc42.dll,再黏贴进去,然后运行wine tabsihost,这下成功了!tabsihost的界面闪了一下,证明成功运行起来了!
当然,为了以后便于使用,我建了一个bash命令,以后只需在命令行中运行该命令就可以打开tabsihost,免得每次都要定位目录,敲一大堆的地址信息,麻烦。
步骤如下:
1、首先在系统目录下创建一个文件:
sudo vi /usr/local/bin/tabsihost
2、然后输入以下语句:
#!/bin/bash
cd Source\ Insight/TabSiHost/
wine TabSiHost.exe &
3、最后赋予它一个可执行的权限。
sudo chmode a+x /usr/local/bin/tabsihost
4、搞定!收工!
题外话:
在上网时意外的发现,tabsihost(或者叫tabsiplus)的作者,inte2000,已经将该工具的工程源码放到了github上。地址是https://github.com/inte2000/TabSiPlus。感兴趣的朋友可以自行去下载最新版本过来,自己随意修改编译。我也下过来,编译了一下,更新了我之前的版本,发现界面有所变化,功能倒是还没去试,但是相信肯定会更加稳定更加好用!