跟我剖析Eclipse之一----------------生成Eclipse.exe

来源:互联网 发布:linux打开命令行窗口 编辑:程序博客网 时间:2024/04/28 08:57
好久不来这里了,都有点不认识了,呵呵跟我剖析Eclipse之一----------------生成Eclipse.exe,前一段电脑出问题了,刚刚搞好。废话不说了,我想写一个系列的文章,名字就暂定为如题的样子吧,所谓剖析么,呵呵,其实我也是略知一二而已了。。。。。。
   用过Eclipse的人都知道,它是一个开源的框架,所有构成Eclipse的源代码都是公开的。我们就以Eclipse3.0.1为例子,来剖析一下它的源代码。
  Eclipse启动的时候是要双击运行Eclipse.exe的,这个exe文件有没有公布出来它的源代码呢,呵呵,答案当然是肯定的了。它的位置就在D:\eclipse301\plugins\org.eclipse.platform.source_3.0.1\src\org.eclipse.platform_3.0.1\launchersrc.zip这里,(我的Eclipse放在d:\eclipse下面)这个ZIP文件是Eclipse.exe的源代码,将它解压缩之后,里面有个Library目录,进去,发现里面有很多.c和.h文件,这就是它的源代码。
我们现在就来编译一个eclipse.exe出来玩玩,呵呵。
首先,打开VC++6.0,新建一个Makefile工程,名字为eclipse,保存在e:\source下面,如下图:
跟我剖析Eclipse之一----------------生成Eclipse.exe然后确定,在弹出的对话框中点击下一步,然后确定,这就生成了一个makefile工程,然后拷贝如下文件到这个目录。。。
eclipse.c,eclipseOS.h,eclipseShm.c,eclipseShm.h,eclipseUnicode.h,eclipseUtil.c,eclipseUtil.h,win32/eclipseWin.c,win32/make_win.mak,win32/eclipse.ico,win32/eclipse.rc,完成之后,目录如下图所示:
跟我剖析Eclipse之一----------------生成Eclipse.exe然后再vc中,选择FileView选项卡,将.c文件添加到SourceFiles里面,.h文件添加到HeaderFiles里面。然后,将make_win.mak的文件名改为eclipse.mak,用notepad打开这个mak文件,需要做一些改动。如下:
更改文件的路径,找到第38行,将../eclipseOS.h改为eclipseOS.h,以下的文件作一样的操作,然后保存。然后在VC中编译->全部构建。会报出一个这样的错误:fatalerror LNK1146: no argument specified with option"/out:",我仔细看了看,发现mak文件的第63行的PROGRAM_OUTPUT没有定义,然后你在第23行的OBJS上面加入:
PROGRAM_OUTPUT = eclipse.exe
然后再全部构建,这个时候就构建成功了。(我也不知道是不是故意留的一个bug,还是自己的操作由问题,呵呵。),这个时候,会在目录下面多一个eclipse.exe出来,这样,eclipse.exe就构建好了。你可以把这个文件拷贝到你的eclipse安装目录下面,试试看结果怎么样。赫赫。
你可以选择一个你喜欢的.ico文件,命名成eclipse.ico,然后放到你的VC文件目录下,重新编译,呵呵,你会发现图标变了。当然你还可以将eclipse启动的splash.bmp重定位到你的eclipse根目录下面。大家都知道,eclipse的启动画面的位置是在:\plugins\org.eclipse.platform_3.0.1\splash.bmp这里,那我们怎么重定位它呢,呵呵,办法很简单了。打开VC中的eclipsewin.c文件。找到showSplash函数,你会发现这个方法就是loadsplash.bmp的方法,我们可以做点什么,呵呵。。。。。。
在MSG msg的下面加入:
_TCHAR* featureImageEx;
 featureImageEx = malloc(_tcslen(homeDir) *sizeof(_TCHAR));
 _stprintf(featureImageEx,_T("%s\logo.bmp"),homeDir);
homeDir指向的是eclipse的根目录,这个例子里面就是:d:\eclipse301\,通过这样的操作,我们就将featureImageEx定位到了d:\eclipse301\logo.bmp了,然后重新编译,将生成的eclipse.exe拷贝到eclipse根目录下面,然后找到一个bmp,命名为logo.bmp,然后放在eclipse根目录下面,然后启动,呵呵,你就可以看到效果了。我自己构建了一个,如下图:
跟我剖析Eclipse之一----------------生成Eclipse.exe其他的我们还可以做,比如加一个progress在启动的时候。
下一次,我们来聊聊startup.jar这个启动包。不过要等到下周末了,上班时间没的上网,平时晚上又懒得上,呵呵。。。。。。