免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1178 | 回复: 0
打印 上一主题 下一主题

Equinox代码分析3-executable包 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-10-16 23:53 |只看该作者 |倒序浏览

                               
       
       
       
       
       
       
Equinox代码分析
[color="#3f7f5f"]分析org.eclipse.equinox.executable

[color="#3f7f5f"]1.编译程序

[color="#3f7f5f"]包的目录:

       
       
       
       
       
       
org.eclipse.equinox.executable
|--
bin
|
  |-- carbon
|
  |   `-- macosx
|
  |-- cocoa
|
  |   `-- macosx
|
  |-- gtk
|
  |   |-- linux
|
  |   `-- solaris
|
  |-- motif
|
  |   |-- aix
|
  |   |-- hpux
|
  |   `-- linux
|
  |-- win32
|
  |   `-- win32
|
  `-- wpf
|
      `-- win32
|--
contributed
|
  |-- gtk
|
  |   |-- linux
|
  |   `-- solaris
|
  |-- motif
|
  |   `-- solaris
|
  `-- win32
|
      `-- win32
|--
gtk_root
|
  `-- about_files
|--
library
|
  |-- carbon
|
  |-- gtk
|
  |-- motif
|
  |-- photon
|
  |-- win32
|
  `-- wpf
`--
motif_root
   
`-- about_files
[color="#3f7f5f"]在大致介绍一下各个目录之前,先说点看到的基础知识
[color="#3f7f5f"]因为eclipse的基础图形库SWT是底层调用系统的图形库,所以编译时,就需要选择当前使用系统的图形库。
[color="#3f7f5f"]Gtk和motif:
motif是早期的unix上的主流图形库,现在linux主要是GTK和QT.因为我的系统是gnome所以我编译是用的是gtk的.
关于
carbon,也是一个很好的开源图形库,感兴趣的话可以了解一下
[color="#3f7f5f"]因为motif目前最新的equniox似乎没有release
只有test
version.所以主要分析GTK,鉴于我们自己要编译代码
所以主要分析目录是
|--
library
|
  |-- gtk
[color="#3f7f5f"]1.build
[color="#3f7f5f"]现不管代码细节,build成功了再说,这样分析中修改代码后,才能看到调整后的代码效果,利于分析。
[color="#3f7f5f"]设计到的脚本文件:
build.xml
ant脚本。
最终调用build.sh
build.sh
通过设置环境变量,最终调用make_linux.mak
make_linux.mak
调用make_version.mak获取版本信息
[color="#3f7f5f"]使用[color="#3f7f5f"]build.xml的步骤比较麻烦
因为脚本中的[color="#000080"]eclipse.refreshLocal[color="#3f7f5f"]在命令行下运行时,需要[color="#3f7f5f"]ant的[color="#3f7f5f"]taskdef
[color="#3f7f5f"]需要把
org.eclipse.osgi_3.4.0.v20080605-1900.jar
org.eclipse.core.resources_3.4.0.v20080604-1400.jar
org.eclipse.core.jobs_3.4.0.v20080512.jar
org.eclipse.ant.core_3.2.0.v20080529.jar
org.eclipse.equinox.common_3.4.0.v20080421-2006.jar
[color="#3f7f5f"]org.eclipse.core.runtime_3.4.0.v20080512.jar
[color="#3f7f5f"]放到$ANT_HOME/lib下 (这些包的版本按自己机器就行,我的是equinox3.4下的包)
build.xml添加
然后
运行ant就可以了
$ant
[color="#3f7f5f"]此处用ant并不爽,虽然我本人很喜欢ant。
编译时推荐直接用build.sh

library
/gtk
下运行
sh
build.sh -java /usr/local/jdk1.6.0_10/ OPTFLAG=-g PICFLAG=-fpic
此处记得传入参数-java $JAVA_HOME. 因为编译JNI时需要 jni.h头文件,否则会报错,当然喜欢其他方式解决的话 随个人习惯。
最终编译出
eclipse,eclipse_1200.so
如果需要安装(其实是拷贝到
bin/对应操作系统的目录下>)

sh
build.sh install即可
[color="#3f7f5f"](install时会向org.eclipse.equinox.launcher/fragments 下对应的目录里copy eclipse_1200.so过去,所以如果没有这个目录的会报错,不过没关系)

这样如果顺利
就完成了编译工作。 接下来就进入具体代码的分析。
PS:
分析编译脚本过程是个很有趣的过程,不过需要一些ant,shell,make的知识.
几个脚本用到的知识
ant
1.给ant添加lib
2.taskdef的运用
shell
1.``的用法
2.if case while等的用法
make
1.include用法
               
               
               
               
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/1073/showart_1316409.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP