openoffice.org3.4 源代码 编译

声明:这篇文章是从我的sina博客搬过来的;


OpenOffice.org  3.4 编译

因工作需要,要对ApacheOpenoffice org编译。起初刚拿到sourcecodes时,人都蒙了,有点困惑,不知改如何下手,庞大的代码,连怎么编译都不知道。然后公司说没有任何资料,想想公司那密闭的网络.....顿时我就冰了...费了很久,在yi的帮助下一起完成了openofficeorg的编译,并且开始了对其中模块进行编程。这里写上这一有点曲折的过程中遇到的问题,希望对进入这个项目的friends有点帮助,因为必须编译出一个完整的openoffice才能进行往后的工作;

基本要求:源代码版本3.4.1,windowsserver 2003,vs2008,2Ghz,最好有2G内存。存储空间10G以上。完整编译费时34小时.

参考:http://wiki.openoffice.org/wiki/Documentation/Building_Guide/Building_on_Windows

(这openoffice在不断增加功能,这个连接上的信息更新落后)

       编译工具以及环境配置;

1、编译工具:Cygwin:下载地址 http://www.cygwin.com,下载后安装,按照提示走,到某一步骤时(不太记得了,公司网络管的严,一点信息拿不出只能凭记忆了),要求下载一些相关的packages,其他默认的都需要,然后此些也是必须要选上的:

        CategoryArchive:  unzip , zip ;

        CategoryDevel:autoconf,bison,flex,gcc-g++,gperf,make,openssl-devel,mercurial,readline,

        CategoryLibs:openssl

        CategoryNet: openssh

        CategoryPerl:perl;

        CategoryShells:mintty;

        CategoryUtils:patch,gnupg;

        CategroyWeb:wget;

这些都必须勾选上,然后会下载,这就得保证你电脑能连上网,而且不是代理,当然网上也有打包好的cygwin

2、调试工具:VS2008

 

 3、下载JDK1.6 ,http://www.oracle.com/technetwork/java/index.html  默认安装;(高版本向下支持)

 

 4、安装windowsSDK for Windows Server2008  :http://www.microsoft.com/enus/download/details.aspx?id=24826  默认安装;

 

 5、下载dgbhelp.dll动态链接库,并将其copy到你源代码目录下的:main/external/gdiplus中,并且源代码目录最好就放在盘符下:eg:D:/main/,目录放的太深会造成后续编译过程中无法预知的错误;dll下载地址:百度上找去;

 

 6、在你的系统盘中找到:\ProgramFiles\Common Files\Merge Module.拷贝: 

       Microsoft_VC90_CRT_x86.msm,   policy_9_0_Microsoft_VC90_CRT_x86.msm       

       Microsoft_VC90_DebugCRT_x86.msm ,   policy_9_0_Microsoft_VC90_DebugCRT_x86.msm

这四个文件到源码的/main/external/msm9中;

 

 7、下载ApacheAnt(选1.6.5或更高的版本),在你电脑系统盘所在目录(建议),建立:一个文件夹AntHome,ApacheAnt 内容解压到其中;(后续的config中就要求配置ant路径)

 

  8、下载此三个文件WNTMSCIruntime.zip,WNTMSCIlib.zip,WNTMSCIinc.zip,将其拷贝到源代码的main/moz/zipped目录中;下载地址:http://www.openoffice.org/tools/moz_prebuild/OOo3.2/

 

  9、在电脑中搜到这两个dllmsvcr71,msvcp71.dll,(百度找也可以......,将其拷贝到main/external/msvcp71目录下;

 

  10、在系统安装盘下:\WINDOWS/WinSxS/x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_8.0.50727.42_x-ww_0de06acd/msvc,找到msvcp80.dll.msvcr80.dll复制到源码main/external/msvcp80目录下.

 还有两个可选的项目,我没有装。建议这些都安装在系统盘;

 

 

 准备工作都做好了后,打开cygwin,按照wiki上提示走.

敲入:ls-l/bin/awk.exe

接着敲入:cd/bin

          rmawk.exe

          cpgawk,exe awk.exe

具体命令含义还请自行查阅Linux命令;

以上步骤一般不出问题;

接下来的perl-MCPAN -e shell

这个我始终没有通过,因为网络管制,连接不上,幸好yi神来之笔,神不知鬼不觉的连上了.....于是直接从yi哪里拷贝了他这个命令通过产生的文件。

接下的配置很重要。

cygwin中在/main目录下敲入:autoconf,让系统自动为你配置好一些基本的环境。

接下来的配置是最重要的一步:你可以先用记事本预先敲好这些命令,然后复制过去;

 

./configure --disable-build-mozilla \ --with-mozilla-build="/cygdrive/d/OOo/mozilla-build-1.3" \ --with-cl-home="/cygdrive/c/Program Files/Microsoft Visual Studio 9.0/VC" \ --with-mspdb-path="/cygdrive/c/Program Files/Microsoft Visual Studio 9.0/Common7/IDE" \ --with-frame-home="/cygdrive/c/Program Files/Microsoft SDKs/Windows/v6.1" \ --with-psdk-home="/cygdrive/c/Program Files/Microsoft SDKs/Windows/v6.1" \ --with-midl-path="/cygdrive/c/Program Files/Microsoft SDKs/Windows/v6.1/Bin" \ --with-asm-home="/cygdrive/c/Program Files/Microsoft Visual Studio 9.0/VC/Bin" \ --with-csc-path="/cygdrive/c/WINDOWS/Microsoft.NET/Framework/v3.5" \
以上配置根据你的vs工具安装路径来设定; --with-jdk-home="/cygdrive/c/j2sdk1.5.0.06" \这个要看你jdk是那个版本就写那个 --with-directx-home="/cygdrive/d/OOo/DirectXSDK" \如果配置有dirextxsdk就写 --with-ant-home=/ant \

注意命令行换行用‘\’;按照上述配置后可能会出现:建议你用--without-junit,如果出现,那么加上此句话重新配置一下;

 

 如果不出意外,会提示您使用./bootstrap命令。那么说明配置成功。接下来可以到你的main目录下发现到多了一个wninev.set..sh文件,这个文件中就是刚刚配置生成的文件之一;

一般出现了要求您使用./bootstrap命令后,那么就是可以开始编译了;

接着输入sourcewinenv.set.sh,然后输入dmake,开始编译。

完成编译时,在

instsetoo_native/wntmscixx.pro/OpenOffice/msi/Install/en-US下能找到安装包;

当然这些是不带有debug信息的;

 

 

编译过程中碰到的错误:

    yiVS版本出问题,提示 “Cannotopen include files: 'atlbase.h'”,没关系,yi同学直接将含有这个头文件的文件文件夹拷贝过去覆盖原来的文件夹,就通过了,不用wiki里面描述的要改什么环境变量之类的;出现同样问题的可以仿照......先备份;

  

  编译过程中,虚拟内存一直增加,到达设定值时,提示"filetoo large",猜测是本机内存少的可怜,于是我只能编了一部分,然后等它报这个错误,然后很无奈的重启....然后接着运行:make--all:模块名;不用担心要重新编译所有,这个工具还是算人性,前面已经编译过的模块不在编译;

  

 编译过程中还遇到缺少这缺少那的问题,问题来自于那恶心的网络,下载的源码不全,导致无法编译。没关系的,将源码复制到相应的模块就可以接着进行;

  

 编译过程中还遇到一些模块莫名奇妙终止,如果没有任何错误提示,没关系,先make--all:相应模块,重新开始编译一次就是了;

 

 

编译带有debug信息模块这是最纠结的一块,wiki上说

cd $MODULE build --from $MODULE --prepare # removes old output trees and solver build debug=true --from $MODULE

可我们最关心的那个模块就是不能编译出一个带有debug,例如SW模块!老是提示:

make:*** 警告:.LOW_RESOLUTION_TIME/cygdrive/d/aoo/main/solver/341/wntmsci12.pro/lib/iswd.lib'

 

最终我们人见人爱的超级无敌的yi用他傲视群雄力压部门N多人的超越神级的六级水平的英语写了封邮件给openoffice,最终openoffice社区里伟大无私的chen给出了答案:

 

给出询问openoffice社区的人给出编译带有debug信息的SW模块的最终答案:

sourcewinenv.set.sh

cdsw

make--clean bebug=t

make--sr debug=true

 

原因是sw模块是用gmake建立的.其他的模块还是可以用wiki上提示建立;sw模块生成的dllpdb文件在solver模块里面(具体路径太长,实在记不住了,自己搜索下),然后复制这些dllhepdb文件替换你的安装目录下的这些dll。你就可以开始调试了。

 

总结:英语要过硬,就像yi说的,没关系会有光明的,方法肯定是有的,在找找。


你可能感兴趣的:(win7,源代码,编译,OpenOffice,windowsxp)