Qt+WebAssembly学习笔记(五)编译libreOffice(运行失败)

前言:

最近接了一个项目,甲方要求集成office,笔者查阅了相关资料jf ,发现libreOffice有wasm分支,就尝试编译了一下

笔者尝试在win10系统下编译,但没成功,本笔记是在ubuntu20.04下完成的,请读者自己准备相关的环境,并分配足够的资源

一、基本想法

将office程序直接运行在web浏览器中,而无需安装office;同时也无需专门的office online服务器

二、源码准备

1.下载libreoffice源码,找个目录,使用git直接拉下来

git clone https://git.libreofficechina.org/core

切换到feature/wasm分支

注:笔者是这样做的,但好像不是一个明智之举,下载了1.6G,建议只拉取一个分支的就好了

2.下载并安装Qt5.15.2及源码

具体可以参考之前的文章,笔者不再重复

三、依赖准备

直接使用在线源安装

sudo apt-get install autoconf aclocal libfontconfig-dev gperf libxslt1-dev xsltproc	libxml2-utils bison flex buill-essential

注:笔者安装的是ubuntu20.04,没有安装任何软件

四、编译环境搭建

1.安装emsdk 2.0.23

下载地址:https://github.com/emscripten-core/emsdk/releases

 解压到一目录中,笔者放在~/Documents/emsdk中,执行如下命令安装

~/Documents/emsdk/emsdk-2.0.23/emsdk install 2.0.23

注:可能会失败,可以执行多次

安装完成后,执行如下命令,配置环境

~/Documents/emsdk/emsdk-2.0.23/emsdk activate --embedded 2.0.23
source ~/Documents/emsdk/emsdk-2.0.23/emsdk_env.sh

配置完成后,一定要执行如下命令,看是否配置正确 

em++ --version

五、编译过程

1.编译Qt5.15.2源码

切换到Qt源码目录,执行如下命令,具体不再展开,请读者参考上篇文档

./configure -xplatform wasm-emscripten -nomake examples -feature-thread  -prefix ~/Qt/5.15.2/wasm

make -j4

make install

2.编译libreoffice

切换到libreoffice源码目录

注:请确保是在feature/wasm分支上

执行如下代码

#配置Qt目录,请修改成刚刚的编译的输出目录
export QT5DIR=~/Qt/5.15.2/wasm

#配置工程
sh ./autogen.sh --with-distro=LibreOfficeWASM32

#编译工程
make

配置过程会下载一些库,整个过程时间比较长,请耐心等待

六、运行测试

README.wasm文件描述,执行如下命令可以查看示例

emrun --serve_after_close workdir/LinkTarget/Executable/qt_wasm-qt5-mandelbrot.html

笔者分别执行了如下命令

emrun --serve_after_close --no_browser --port 8080 workdir/LinkTarget/Executable/
emrun --serve_after_close --no_browser --port 8080 instdir/program/

然后打开谷歌浏览器运行目录下的html文件,让笔者疑惑的是,要么运行出错,要么不知道加载了什么东西。当前笔者并未阅读对应的源码,可能是还没完善吧,先等待官方放出正式版

可能会遇到的问题

1.编译时,提示找不到Qt相关的库

解决方法:检查下环境变量中,QT5DIR正确,笔者的是~/Qt/5.15.2/wasm

2.配置工程时提示缺少autoconf

解决方法:执行如下命令安装

sudo apt-get install autoconf

3.配置工程时提示缺少aclocal

解决方法:执行如下命令安装

sudo apt-get install aclocal

4.配置工程时提示checking for fontconfig... no

解决方法:执行如下命令安装

sudo apt-get install libfontconfig-dev

5.配置工程时提示checking for gperf... no

解决方法:执行如下命令安装

sudo apt-get install gperf

 6.配置工程时提示checking for libxslt... no

解决方法:执行如下命令安装

sudo apt-get install libxslt1-dev

 7.配置工程时提示checking for xsltproc... no

解决方法:执行如下命令安装

sudo apt-get install xsltproc

 8.配置工程时提示checking for xmllint... no

解决方法:执行如下命令安装

sudo apt-get install libxml2-utils

9.配置工程时提示checking for bison... no

解决方法:执行如下命令安装

sudo apt-get install bison

 10.配置工程时提示checking the bison version... checking for flex... no

解决方法:执行如下命令安装

sudo apt-get install flex

 11.配置完成时提示WARNING : no suitable nasm (Netwide Assembler) found for internal libjpeg-turbo

解决方法:执行如下命令安装

sudo apt-get install nasm

后记:

虽然运行失败了,但作为一个解决思路,我们值得借鉴,期待下一版的更新

要在ARM架构下编译LibreOffice,您可以按照以下步骤进行操作: 1. 首先,创建一个普通用户用于编译LibreOffice。您可以使用以下命令在终端中创建一个名为"libreoffice"的用户: ``` useradd libreoffice ``` 2. 然后,切换到/opt目录并将LibreOffice源代码的所有权赋予libreoffice用户。您可以使用以下命令完成此操作: ``` cd /opt && chown -R libreoffice:libreoffice libreoffice-7.1.8.1 ``` 3. 接下来,以libreoffice用户身份登录,切换到LibreOffice源代码目录并开始编译。您可以使用以下命令完成此操作: ``` su libreoffice && cd /opt/libreoffice-7.1.8.1 && make -j 16 ``` 这里的"-j 16"选项表示使用16个CPU核心进行编译。如果未指定该选项,默认将使用所有可用的CPU核心进行编译。 这样,您就可以在ARM架构下编译LibreOffice了。请注意,这些步骤假设您已经在系统上安装了必要的编译工具和依赖项。具体的编译过程可能因系统环境而有所不同,请根据您的实际情况进行相应的调整。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [ARM架构下麒麟v10操作系统源码编译libreoffice7](https://blog.csdn.net/weixin_58090109/article/details/122274942)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [基于Kylin V10 (Tercel)和华为鲲鹏arm服务器编译LibreOfficeDev rpm安装包](https://download.csdn.net/download/chyl620/86271508)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

꧁白杨树下꧂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值