错误处理" />
当前位置: 代码迷 >> Office >> 错误处理
  详细解决方案

错误处理

热度:1349   发布时间:2016-05-05 05:54:39.0
WIN7 编译 OpenOffice3.4.1 (2)

很了很多网上有关在Windows下编译OpenOffice的帖子,都太老了,或是太陈旧了,没有多大用处。

下面是我总结的编译OpenOffice,分享给大家。


源代码的组织形式
main/
包含了各个模块。每个模块都提供了一个或多个库。
例如:应用程序writer的源代码可以在main/sd/下面。

test/

ext_libraries/
外部模块(不属于Apache OpenOffice和Apache的模块)的主目录。


ext_sources/
包含了外部库的tar balls。为了方便和确保指定的版本可用而添加的。但是需要注意的是

Apache OpenOffice发布的源代码不包含任何外部的tar balls。

        该文件夹当你配置的时候,系统会建立的。


extras/
包含本地化数据。

大多数用来构建的工具和脚本都存放在main/solenv/:下面
dmake makefiles in main/solenv/inc/
gmake makefiles in main/solenv/gbuild/
executables and perl files in main/solenv/bin/
perl modules in main/bin/modules/
库和其他模块之间共享的输出文件存放在main/solver/


/////////////////////////////////////////////////////////////////
参考网页:http://wiki.openoffice.org/wiki/Documentation/Building_Guide_AOO/Step_by_step#Windows_7

增加了一下个人安装过程中的问题解决办法,以及附上部分贴图帮助大家。

安装前奏

1. 安装cygwin

可以在http://cygwin.com下载setup.exe然后在线安装。


2. Install Java

安装JDK 1.6(不要安装JDK1.7)
下载地址:www.oracle.com/technetwork/java/javase/downloads/index.html


3. 安装Ant

下载地址:http://ant.apache.org/bindownload.cgi
选择就近的镜像下载。
下载zip包(当前是apache-ant-1.8.4-bin.zip).
解压缩zip到目录(例如:c:\),该路径不能带有括号和空格。
例如:C:\Program Files (x86)\就不会起作用。


4.通过apt-cyg安装丢失的cygwin包

4.1 安装wget

点击在http://cygwin.com下载setup.exe,然后下一步直到在搜索框输入wget,然后修改Default为Install

4.2 安装apt-cyg

目的:为了可以从google.com下载代码

cd to /cygdrive/c/temp

或者在任何一个临时里面执行
wget http://apt-cyg.googlecode.com/svn/trunk/apt-cygchmod +x apt-cygmv apt-cyg /usr/local/bin/

4.3 使用apt-cyg安装丢失的cygwin包

apt-cyg install perl zip unzip gperf autoconf rsync gcc4-g++ bison flex patch
注:这里如果你网速慢你也可以像4.1中那样手动安装。我当时就是因为网速慢,而手动安装的。

4.4 安装GNU make(非常重要)

这个是我后来添加的,因为我执行到第四步骤的时候出现了错误。需要安装GNU make。
在这步我就提前写出来。

5.使用gawk.exe代替符号链接awk

rm /usr/bin/awk
mv /usr/bin/gawk.exe /usr/bin/awk.exe
注意:如果rm命令失败,那么mv就不必要了。
这里的/usr/bin其实是个虚拟文件夹,实际的文件夹就是/bin。


// Begin -- Microsoft Relative

6.安装Visual Studio 2008 和 Visual Studio SP1(必须安装)

VS2008下载地址网上搜会有很多,我就不给出了。
SP1下载地址:http://www.microsoft.com/en-us/download/details.aspx?id=10986

前者是VS2008的安装包,后者是补丁包SP1.

7.安装Microsoft Windows SDK for Windows7 and .NET Frameword 3.5. SP1(微软建议)

因为VS2008已经自带了SDK,其版本为v6.0A,因此我没有额外安装该SDK。

8.下载MS Visual C++ 2008 SP1 Redistributable Package

下载地址:http://www.microsoft.com/en-us/download/details.aspx?id=26368
下载:vcredist_x86.exe 和 vcrestist_x64.exe
如果你是32位版本,只要安装这个vcredist_x86.exe,
而64位最好2个都安装。

注:后面也会需要下载

9.安装DirectX SDK(可选)

地址:http://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=6812
下载后的文件名为:DXSDK_Jun10.exe

我就没有安装DX SDK。

10.安装NSIS installer(为了创建EXE installer)(可选)

下载地址:http://nsis.sourceforge.net
因为我网速的问题,这个我也没有下载,不过最终编译成功了。
// End -- Microsoft Relative


获取源码并配置文件夹位置

1.下载源码包

地址:http://openoffice.apache.org/downloads.html
我这里下载后的文件为:aoo-3.4.1-incubating-src.zip

2. 解压缩包

cd ~tar -xjf <download-location>/aoo-3.4.1-incubating-src.zipcd <uncompress-aoo-3.4.1-path>/aoo-3.4.1/main

3.记录source path

$ pwd/cygdrive/f/Build_OOo3.4.1/aoo-3.4.1/main$ SourceMain=/cygdrive/f/Build_OOo3.4.1/aoo-3.4.1/main

注1:/cygdrive/f/Build_OOo3.4.1/aoo-3.4.1/main就是F:\Build_OOo3.4.1\aoo-3.4.1\main
注2:/和\要区别前者是cygwin命令行使用的,后者是Windows磁盘路径。
注3:解压缩的aoo-3.4.1必须和cygwin放在不同的目录。(非常重要)

这是我的文件路径:


给源码添加额外的平台相关的包和DLL

1. 添加dbghelp.dll

$ cp /cygdrive/c/Program\ Files\ \(x86\)/Microsoft\ Visual\ Studio\ 9.0/Common7/IDE/dbghelp.dll $SourceMain/external/dbghelp

这步你也可以手动添加。


2. 将步骤一中下载的vcredist_x86.exe和vcredist_x64.exe放置到/main/external

地址:http://www.microsoft.com/en-us/download/details.aspx?id=26368
这里网页上给出的地址和步骤二给出的不同。步骤二给出的是security updates的。
但是这里我使用security updates的。


3. 将gdiplus.dll放置到/main/external/gdiplus中

下载地址:http://www.microsoft.com/en-us/download/details.aspx?id=18909
下载后得到WindowsXP-KB975337-x86-ENU.exe,并执行。
在生成的文件夹找到gdiplus.dll并拷贝到/main/external/gdiplus中


4. 将msvcr100.dll拷贝到/main/external/msvcp100中

网页上给出的msvcr100.dll的地址为:C:\Windows\System32\msvcr100.dll
但是我的系统是64位的,最后我在C:\Windows\SysWOW64找到了msvcr100.dll
注:默认/main/external没有msvcp100文件夹,你要自己手动新建。


配置和编译

1. 回到/aoo-3.4.1/main

$ cd $SourceMain


2. 设定配置选项(这里你需要根据你本机的实际情况设置)

我本来是按照那个网页上的配置写的,却总是出错,不得已我在下面添加了Full Path.
./configure \--with-cl-home=/cygdrive/c/Program\ Files\ \(x86\)/Microsoft\ Visual\ Studio\ 9.0/VC \--with-mspdb-path=/cygdrive/c/Program\ Files\ \(x86\)/Microsoft\ Visual\ Studio\ 9.0/Common7/IDE \--with-asm-home=/cygdrive/c/Program\ Files\ \(x86\)/Microsoft\ Visual\ Studio\ 9.0/Bin \--with-csc-path=/cygdrive/c/Windows\Microsoft.NET\Framework\v3.5 \--with-frame-home=/cygdrive/c/Program\ Files/Microsoft\ SDKs/Windows/v6.0A \--with-psdk-home=/cygdrive/c/Program\ Files/Microsoft\ SDKs/Windows/v6.0A \--with-midl-path=/cygdrive/c/Program\ Files/Microsoft\ SDKs/Windows/v6.0A/Bin \--with-jdk-home=/cygdrive/c/Program\ Files\ \(x86\)/Java/jdk1.6.0_21 --with-ant-home=/cygdrive/f/Build_OOo3.4.1/apache-ant-1.8.4 \--with-dmake-url="http://dmake.apache-extras.org.codespot.com/files/dmake-4.12.tar.bz2" \--with-epm-url=http://ftp.easysw.com/pub/epm/3.7/epm-3.7-source.tar.gz \--enable-pch \--disable-directx \--disable-atl \--disable-activex \--disable-binfilter \--without-junit \--enable-dbgutil


3. 下载一些额外的包以完成配置

./bootstrap

这会下载一些额外的包,并做一些配置。在我的8G内存,i5-2540CPU上需要1个小时。
当出现
“dmake successfully built and copied to F:/Build_OOo3.4.1/aoo-3.4.1/main/solenv/wntmsci12/bin/dmake.exe
bundling of dictionaries is disabled."
的时候,你就可以进行下一步了。

4. 包含环境变量

$ source winenv.set.sh

5. 编译

$ cd instsetoo_native/$ build --all


错误处理

编译过程中会出现错误,需要手动修改。


错误1:编译libxml2错误

..\testapi.c(294) : error C2001: newline in constant
..\testapi.c(295) : error C2143: syntax error : missing ')' before 'return'
办法:找到testapi.c,在其294行的少一个分号,加上就OK了。
然后再
$ build --all:libxml2


错误2:No space left on device

fatal error C1085: Cannot write compiler generated file: '../../wntmsci12.pro/obj/rscicpx.obj': No space left on device
导致的。
这个错误只有当你的磁盘空间不足时才会发生,所以给编译OpenOffice的磁盘留下足够的空间。
编译整个OpenOffice最好分配15G的磁盘空间。


错误3:REBASE: dbghelp.dll      Rebase failed.  Signed images can not be rebased.

出现了dbghelp.dll不正确的问题。
办法:F:\Build_OOo3.4.1\aoo-3.4.1\main\solver\341\wntmsci12\bin目录下的
dbghelp.dll有问题,而该dbghelp.dll是根据网页提供的(路径为:C:\OpenOffice_Build_Need\aoo-3.4.1\main\external\dbghelp)
然后我在C盘下搜索,最终使用C:\Windows\winsxs\x86_microsoft-windows-imageanalysis_31bf3856ad364e35_6.1.7601.17514_none_4a6381a588654ba6目录下的dbghelp.dll,
该dll大小为834KB.


好了,至此已经完成了配置,下一篇打算介绍如何,partial  build.

这样我们就可以修改单个模块,调试单个模块了,这样这个模块也就能为你所用。

并且,如有可能我还打算介绍下,如何将这些模块集成到Visual Studio 2008中,这样编译,调试起来就非常方便了。。


哈哈!!!




  相关解决方案