(于2021-05-22针对最新编译问题进行了更新,在Fedora 33下测试通过)
一、安装编译环境依赖
$ sudo dnf builddep libreoffice
$ sudo dnf install ccache # 安装 ccache,从而能够在重新编译时复用之前编译的缓存以加速编译。您也可以不用ccache
$ ccache -M 10G # 将 ccache 缓存大小限制设置为 10G
$ ccache --set-config=cache_dir=</path/to/ccache_dir> # 若空间不足,可将 ccache 的缓存目录设置为其他的位置(比如挂载的其他分区目录)
$ sudo dnf install patch avahi-devel # builddep 没有安装好这两个编译依赖的包
$ sudo dnf install fakeroot rpm-build # 若您需要 rpm 或 deb 格式的安装包,则需要安装这两个依赖项
二、克隆源代码及子模块(git clone)
首先克隆主代码。此处克隆 libreoffice-7-1 分支。克隆时,因为我只需要最新的源代码(不需要历次的所有commit),因此使用了depth=1选项。
$ git clone --depth=1 --branch libreoffice-7-1 git://go.suokunlong.cn/lo/core ./libreoffice-7-1
正克隆到 './libreoffice-7-1'…
remote: 枚举对象: 120360, 完成.
remote: 对象计数中: 100% (120360/120360), 完成.
remote: 压缩对象中: 100% (86011/86011), 完成.
remote: 总共 120360 (差异 46040),复用 87907 (差异 32504)
接收对象中: 100% (120360/120360), 272.72 MiB | 9.36 MiB/s, 完成.
处理 delta 中: 100% (46040/46040), 完成.
正在更新文件: 100% (120889/120889), 完成.
然后,配置子模块。若不进行如下配置,则若启用中文用户界面选项,会默认去git.libreoffice.org克隆子模块代码,速度较慢并且无法观察克隆进展:
$ cd libreoffice-7-1/
$ git submodule init
子模组 'dictionaries'(https://git.libreoffice.org/dictionaries)已对路径 'dictionaries' 注册
子模组 'helpcontent2'(https://git.libreoffice.org/help)已对路径 'helpcontent2' 注册
子模组 'translations'(https://git.libreoffice.org/translations)已对路径 'translations' 注册
我们编译时只需要 translations 子模块,没有启用帮助及词典,因此到 .git/config 中将 dictionaries 和 helpcontent2 两个子模块删除。然后,将translations模块的url修改为国内镜像地址(比如 git://go.suokunlong.cn/lo/translations),以加快克隆速度。
然后,抓取子模块。此处使用 –depth=1 选项以只获取最新的翻译字符串,并且使用 –progress 选项以显示克隆进展。
$ git submodule update --progress --depth=1
正克隆到 '/home/suokunlong/build/lo/libreoffice-7-1/translations'...
remote: 枚举对象: 45290, 完成.
remote: 对象计数中: 100% (45290/45290), 完成.
remote: 压缩对象中: 100% (11030/11030), 完成.
remote: 总共 45290 (差异 22278),复用 37455 (差异 14997)
接收对象中: 100% (45290/45290), 107.72 MiB | 7.20 MiB/s, 完成.
处理 delta 中: 100% (22278/22278), 完成.
remote: 总共 0 (差异 0),复用 0 (差异 0)
remote: 枚举对象: 14403, 完成.
remote: 对象计数中: 100% (14403/14403), 完成.
remote: 压缩对象中: 100% (3316/3316), 完成.
remote: 总共 11565 (差异 5892),复用 9773 (差异 4229)
接收对象中: 100% (11565/11565), 89.61 MiB | 3.06 MiB/s, 完成.
处理 delta 中: 100% (5892/5892), 完成 155 个本地对象.
来自 git://go.suokunlong.cn/lo/translations
* branch 4a12b40c8751323705d82539be43d04990f934a9 -> FETCH_HEAD
子模组路径 'translations':检出 '4a12b40c8751323705d82539be43d04990f934a9'
最后,获取 external_tarballs. 这是 libreoffice 在编译时使用的第三方库等包,默认是从境外服务器去抓取,速度很慢。我已将常用的包放在了境内服务器,您需要从以下位置下载。可以使用下载器一次性全部下载,或者在下面的 make 阶段根据终端输出再去仅下载需要的文件。下载的文件请放置到下列autogen.input中设定的路径下。
https://go.suokunlong.cn:88/dl/libreoffice/external_tarballs/
三、配置编译选项(autogen.input)
你可以不指定编译选项,直接按照下一部分介绍的 autogen.sh命令生成makefile,这样做就会按照默认的编译选项进行。你也可以将编译选项作为autogen.sh运行时的参数传递给它,这种情况下就会使用命令行参数作为编译选项。
但最方便的是通过autogen.input来设置编译选项。这个文件仅在不存在任何命令行参数时才会生效。在克隆的源代码根目录下建立 autogen.input 文件,内容如下。完整的编译配置选项及其含义,见源代码根目录下的configure文件。
# 我一般直接在线浏览帮助文档,因此将帮助禁用了
--without-help
--without-helppack-integration
# 启用简体及繁体中文用户界面
--with-lang=zh-CN zh-TW
# 自己编译的话在线更新及崩溃报告功能就没啥用了,禁用
--disable-online-update
--disable-breakpad
# 禁用 Office Development Kit。若启用 ODK,则额外需要doxygen依赖项。
--disable-odk
--without-doxygen
# 若编译好之后您需要rpm (或deb)包,则需要启用下列两项:
--enable-epm
--with-package-format=rpm
# 若您需要在多个不同版本的编译之间共享external_tarballs第三方源代码包,则可设置下列选项:
# --with-external-tar=<external_tarballs文件夹路径>
# 现在很多功能都用不到java了,因此我直接将其禁用
--without-java
# 我需要用到firebird数据库,因此启用
--enable-firebird-sdbc
--without-system-firebird
--enable-python=internal
四、编译(autogen.sh && make)
在源代码根目录下运行 autogen.sh。该脚本会调用 autogen.input中定义的编译选项。
./autogen.sh
若提示缺少某个包,则很可能是需要手动安装这个包的devel版本。若看到如下的提示,则表示autogen.sh运行无错误:
****************************************************************************
To build, run:
/usr/bin/make
To view some help, run:
/usr/bin/make help
After the build has finished successfully, you can immediately run what you built using the command:
instdir/program/soffice
If you want to run the smoketest, run:
/usr/bin/make check
*************************************
此时就可以运行 make 命令进行编译了:
make
此时,若提示正在从 dev-www.libreoffice.org 下载各种包,但墙内速度很慢的情况下,可以按下 Ctrl-C键中断,然后手动从我的墙内缓存链接下载,并放入 –with-external-tar 编译选项指定的目录。也可以从其他任何地方下载,比如提示下载 Python-3.7.7.tar.xz 时也可以从 http://npm.taobao.org/mirrors/python/3.7.7/ 下载。
编译比较耗时。按照官方wiki上的说法,首次编译大约耗时约 = 8小时 / cpu核心数,后续更改源代码后增量编译耗时从几秒钟到几小时不等,取决于代码更改的程度。若需要频繁重新编译,则安装ccache包是个不错的选择,autogen.sh若检测到你安装了ccache则会自动启用。你也可以用icecream等分布式编译方式加速编译。
编译完成后,执行 .instdir/program/soffice 即可运行。若在autogen.input 中启用了 “–with_package_format=rpm deb” ,则生成的安装包在 workdir/installation中。
常见错误解决
1. configure: error: The missing Perl modules are: FindBin
解决:安装perl的FindBin包,一般情况下你的Linux发行版包管理器中已经有现成的:$ sudo dnf install perl-FindBin
“如何编译 LibreOffice”上的130条回复
make的时候这个报错,请问是怎么回事
您好,make的时候报这个错,我尝试mkdir out目录,又报找不到makefile,我感觉是cpu是arm哪里需要配置,但是无从下手
大佬们,make报这个错,有没有遇到过
你是arm编译的吗
centos7编译,已经好了
编译出来的包是x86格式,怎么编译arm机可运行的格式
或者是怎么离线编译
我也在搞arm编译的,但是好像cpu识别有问题,不知道咋搞,你那个x86的肯定没用
兄弟你那个解决了吗
上面的发的问题没有了,但是不同的函数报这个错,我看说是个bug,我改了还是不行,你编译出来了吗
我没有arm环境
那你咋编译呀
我搞不了了,没有环境,我帮你搜搜你的这个问题吧
恩,谢谢你看看这两个,感觉bug无解呀,我idev频道聊了,都没能理我,搞出来我提供出来
https://www.mail-archive.com/libreoffice-bugs@lists.freedesktop.org/msg790573.html
https://bug-attachments.documentfoundation.org/attachment.cgi?id=172646
我试了7的所以版本了,我还拉了master分支,问题更多
解决了吗,兄弟
没呢,太难了,不知道咋搞了
> 我idev频道聊了,都没能理我
在IRC频道请教时,要有耐心,开发者大多位于欧洲,有时差,可能你在提问时他们正在睡觉呢,你可以换个时间再问。更有效的办法是向开发者邮件列表发邮件询问,这样很多人就能看到并回应。
大佬,有qq群吗
兄弟,我终于搞定的,7.3和7.1都不行,7.0.6才行
兄弟,我终于搞定的,7.0.6才行
可以给下编译的rpm包吗
可以,但是
装的时候提示这两个,我还看已经安装了,也有这个库,不知道咋解决呢
wh0221-
麻烦加下我微信可以吗,我这边安装试试
可以,你的微信多少
wh0221-
老哥,麻烦加下微信,私下咨询一下
我加你了呀,你没通过
老哥,没收到,18329741629
装 libxinerama1 包试试。
请教下,用arm的centos7.7的自带的或者x86的提供的7版本的libreoffice转换11M的doc几秒钟就可以转换了,但是arm上编译的7.06的得五十分钟,这个是什么原因:
转换命令为
“用arm的centos7.7的自带的或者x86的提供的7版本的libreoffice转换11M的doc几秒钟就可以转换了”,自带的版本也是7.0.6版吗,还是更新的版本?
提醒大家,留言时可以为评论中的源代码、终端输出等内容使用HTML的pre标记,从而使其在网页上原样显示。
作者能指导下吗,或者把编译的rpm包提供下呗,太难了
大佬,你知道这个怎么安装吗,我装的时候说缺少依赖,包是不是全在这里,其它地方没有,workdir/installation/LibreOfficeDev/rpm/install/LibreOfficeDev_7.0.6.2_Linux_rpm
解决了吗,没有的话请提供完整的安装命令。
另,你在autogen.input中是否设置了–without-fonts之类的参数?请提供你的autogen.input选项。
设置了的,我就把所以的rpm 执行yum -y install *.rpm,报错如下,我看了
[root@1 rpm]# rpm -qf /usr/lib64/libXinerama.so.1
libXinerama-1.1.3-2.1.el7.aarch64
这个包我也装了,我换了高版本的也不行
updates | 2.9 kB 00:00:00
—> Package lodevbasis7.0-draw.aarch64 0:7.0.6.2-2 will be installed
—> Package lodevbasis7.0-en-US.aarch64 0:7.0.6.2-2 will be installed
—> Package lodevbasis7.0-extension-pdf-import.aarch64 0:7.0.6.2-2 will be installed
—> Package lodevbasis7.0-firebird.aarch64 0:7.0.6.2-2 will be installed
—> Package lodevbasis7.0-gnome-integration.aarch64 0:7.0.6.2-2 will be installed
—> Package lodevbasis7.0-graphicfilter.aarch64 0:7.0.6.2-2 will be installed
—> Package lodevbasis7.0-images.aarch64 0:7.0.6.2-2 will be installed
—> Package lodevbasis7.0-impress.aarch64 0:7.0.6.2-2 will be installed
—> Package lodevbasis7.0-librelogo.aarch64 0:7.0.6.2-2 will be installed
—> Package lodevbasis7.0-libreofficekit-data.aarch64 0:7.0.6.2-2 will be installed
—> Package lodevbasis7.0-math.aarch64 0:7.0.6.2-2 will be installed
—> Package lodevbasis7.0-ogltrans.aarch64 0:7.0.6.2-2 will be installed
—> Package lodevbasis7.0-ooofonts.aarch64 0:7.0.6.2-2 will be installed
—> Package lodevbasis7.0-ooolinguistic.aarch64 0:7.0.6.2-2 will be installed
—> Package lodevbasis7.0-python-script-provider.aarch64 0:7.0.6.2-2 will be installed
—> Package lodevbasis7.0-pyuno.aarch64 0:7.0.6.2-2 will be installed
—> Package lodevbasis7.0-qtz.aarch64 0:7.0.6.2-2 will be installed
—> Package lodevbasis7.0-writer.aarch64 0:7.0.6.2-2 will be installed
—> Package lodevbasis7.0-xsltfilter.aarch64 0:7.0.6.2-2 will be installed
—> Package lodevbasis7.0-zh-CN.aarch64 0:7.0.6.2-2 will be installed
–> Finished Dependency Resolution
Error: Package: lodevbasis7.0-core-7.0.6.2-2.aarch64 (/lodevbasis7.0-core-7.0.6.2-2.aarch64)
Requires: libXinerama.so.1
You could try using –skip-broken to work around the problem
You could try running: rpm -Va –nofiles –nodigest
#安装路径
–prefix=/opt/office
#禁用帮助
–without-help
–without-helppack-integration
–disable-postgresql-sdbc
#启用简体中文用户界面
–with-lang=zh-CN
#在线更新及崩溃报告功能禁用
–disable-odk
–without-doxygen
–disable-online-update
–disable-breakpad
–enable-epm
–with-package-format=rpm
#禁用与JUnit有关的测试
–without-junit
#启用libreoffice内置的字体
–with-fonts
#禁用Office Development Kit。若启用ODK,则额外需要doxygen依赖项。
#若编译好之后您需要rpm (或deb)包,则需要启用下列两项,默认不启用:
#编译之间共享external_tarballs第三方源代码包,为加快编译速度,可以预先在国内镜像下载(https://go.suokunlong.cn:88/dl/libreoffice/external_tarballs/)。
#设置–with-external-tar选项指定第三方源代码包路径:
–with-system-nss
–with-external-tar=/home/logsaas/libreoffice/dl/libreoffice/external_tarballs
#禁用自带java
–without-java
#需要用到firebird数据库则要启用,默认不启用
–enable-firebird-sdbc
–without-system-firebird
–enable-python=internal
你运行autogen.sh以及编译make是以root用户进行的吗?随然我没试过,但是我看到过如果以root进行libreoffice编译会出现很多不可预期的问题,不知道会不会跟这个又关。另外,你在邮件列表中提供的代码粘贴链接是无效的,有人已经回复你了让你重新粘贴。
恩,我现在编译好了,这个问题就是依赖库的问题还可以问他们吗,只是链接无效吗,我只是个小运维,我都不知道怎么和他们聊,我看说root编译,好像没问题,我建了个用户,然后给了sudo权限老是出问题
试了非root,安装的时候还是依赖这个库报错,你那边怎么弄的呀
如上所说,装 libxinerama1 包试试。
哎,说的这个我都装过,devel和libxinerama1
邮件列表回复让你安装libXinerama-devel包。
粘贴Christian Lohmaier在邮件列表中的回复:
When building packages using the epm method, the dependency gets added by instsetoo_native/inc_openoffice/unix/find-requires-x11.sh – and it looks like it should also add the ()(64bit) marker to the dependency when PLATFORMID is linux_aarch64 and not only for linux_x86_64
check with rpm -q –provides libXinerama-1.1.3-2.1.el7.aarch64 whether it provides “libXinerama.so.1()(64bit)”
libXinerama-devel-1.1.3-2.1.el7.aarch64
libXinerama-1.1.3-2.1.el7.aarch64
这些东西我都检查过的
libxinerama1这个叶装了没用,不知道是不是版本有问题,但是不知道装哪个了
邮件列表仔细看一下回复一下他们。
注意回复邮件列表时请“回复全部”,确保邮件列表的地址在收件人中。另外,邮件主题中请删除“Re: 回复:回复:回复:回复:回复:libreoffice-7.3.2 compile in arm system”前面的“回复”,只保留一个Re。
以下commit应该能解决你的问题(目前已合并到7.3分支),请测试并反馈到邮件列表:
https://git.libreofficechina.org/core/commit/?h=libreoffice-7-3&id=5f05b79821699456309a9b7434772cc3eb2dc64a
您好,我在欧拉系统上编译6.0.6.1版本,执行autogen.sh时提示:
最后提示
之后执行了make,出现错误提示:
看了源码drbg.c中提示问题的地方,是走了32位情况的条件编译,怎么能设定64位编译?或者有其他解决办法吗?
抱歉,你的评论被加入到了垃圾评论队列,刚刚看到。
你提到的问题我得再想想,但是你能不能先试试编译最新的7.3版本?6.0有点老了,老版本用最新的编译工具不可避免会出现问题。
比如你提到的libgpg的错误,应该是与https://dev.gnupg.org/T4459中提到的是一样的,这个错误已在https://dev.gnupg.org/rE7865041c77f4f7005282f10f9b6666b19072fbdf中修复,造成问题的原因是libgpg编译时依赖Gawk,而如果系统上的gawk是新版本的Gawk 5.0或更高版本的话就会报错。
实际上,如果你在现在的操作系统上(基于最新的工具链)来编译libreoffice 3.5,是肯定没法通过的,会有各种错误,而libreoffice 3.5在它当时的各个操作系统下都能编译通过。要想在新系统上顺利编译旧版本,你就需要用老旧的操作系统。
CPU:Loongson-3C5000LL
系统:Loongnix-Server Linux release 8.3
libreofficeb版本:7.2.5.1
大佬好,我需要编译安装libreoffice。但是configure最后出了个错误:
这是不是由于libreoffice不认识龙芯的cpu,导致错误认为是个32位的cpu?
之后我configure后面加上–without-java,可以过了。但是后面make过不去,提示:
这个很明显,你的CPU是64位的、但编译的libreoffice默认是64位的,而是你的JDK却是64位的。如果要启用java,那么你必须也使用32位的JDK,或者使用–host=x86_64-pc-cygwin或者–host=aarch64-pc-cygwin以启用64位libreoffice编译。其实如果不用数据库功能和求解器的话可以–without-java.
见:https://wiki.documentfoundation.org/Development/BuildingOnWindows#Selecting_the_host_.2F_target_system
这个我也不太确定是哪里的问题,你可以先在–without-java的情况下运行一遍make distclean,然后重新运行autogen.sh,再make,如果这个错误还是出现,请提供较为完整的autogen.sh和make的日至,我可以代为在irc上求助。
感谢大佬回复,这是make后的全部信息。应该还是和不认识loongarch64这个架构的cpu有关。。。我其实不需要完整的libreoffice,只要soffice能运行就行。。。龙芯那边据说还在迁移libreoffice,只不过需要时间。我就自己先试试。。
来自红帽的资深开发者Caolán McNamara回复如下:
简单翻译如下:
因此,我建议你:
1. 先`make distclean`
2. 再`./autogen.sh`
3. 提供源代码根目录下由autogen.sh生成的config.log文件中的CPUNAME=的值,并通过邮件将该config.log文件发送给我(suokunlong at 126.com,或者最好在论坛中发帖上传附件)
twaindsm_2.4.1.orig.tar.gz这个文件没有在https://go.suokunlong.cn:88/dl/libreoffice/external_tarballs
我缓存的都是我在linux下编译实际用到的。如果需要的人比较多的话,我考虑一下是不是有必要把所有的全部镜像下来。
希望能有一个全部的镜像,我编译的是windows版,可能和Linux所需的内容有些不同,有些内容即便我通过范强(谐音)还是不能通过https://dev-www.libreoffice.org/src/直接下载,比如twaindsm,https://go.suokunlong.cn:88/dl/libreoffice/external_tarballs下也是没有的,还有https://dev-www.libreoffice.org/extern/虽然这个里面的内容不多
希望能够提供全部镜像,还有https://dev-www.libreoffice.org/extern
https://dev-www.libreoffice.org/extern 已下载到了https://go.suokunlong.cn:88/dl/libreoffice/extern/。
twaindsm已下载到了https://go.suokunlong.cn:88/dl/libreoffice/external_tarballs中。里面内容太多了,全部镜像的话我最近可能没时间写抓取代码,等有时间吧。
你说的文件我已经添加。这个只有690,151字节,因此在编译时让它自行下载也可以。
好像那个第三方 tarball 的国内镜像 404 了?
https://go.suokunlong.cn:88/dl/libreoffice/external_tarballs/
我换了一下服务器的机器,忘了配置这个了,马上解决。
现在好了。
楼主,你根据collabora公司这篇文章:https://collaboraonline.github.io/post/build-code-android/ ,编译过android吗?我有些问题想要咨询你。
没有哦,感觉android下的没有编译的必要,现成的拿来用就行了,手机上无非是偶尔打开个文件看看应应急
楼主,我只想编译其中的calc这一个模块,这个可以实现吗?
理论上可以,但是LibreOffice的各个模块之间的依赖关系比较复杂,要单独编译其中一个模块的话你需要自己修改源代码,去除不需要的部分,自己处理依赖关系,得不偿失。
近期从6.1.6版本,再到6.4版本,再到7.1版本,最后make都会报错.
> 一言若、说:
> 2021-08-12 上午10:08
> 这个错误,只需要修改armhelper.S文件开头的宏定义部分,把@改为#即可
> 应该是早期汇编的行注释时@,然而近期@已经不是汇编的注释了
看来你已经找到原因和解决方案了。
楼主裁剪搞定了吗?我也遇到很大的这个问题
android so 编译出来160多m 无法裁剪体积
应该是启用了debug symbol,你的编译选项是什么。
没编译过android下的,不好评论。建议去irc频道 #libreoffice-dev咨询。
你好,我的系统是麒麟V10,make的时候报错如下:
我编译的版本是7.0.6.2
已经解决啦
怎么解决的,能否分享一下?
yum install -y gtk3-devel
编译的arm包能给我下吗,谢谢
你好,请问可以分享一下吗?
yum install -y gtk3-devel
你好,兄弟,可以分享下你编译后的包吗
看下我写的博客吧
https://blog.csdn.net/weixin_58090109/article/details/122274942?spm=1001.2014.3001.5502
平时普通的操作你大可不必、而且不应该用root用户进行操作,用root用户进行这些操作是一个坏习惯。如果是服务器的话,我猜测你的ssh登录也是用的root用户?被黑客破解登录密码只是个时间问题 。
下载、配置、编译以普通用户即可,只在安装rpm包时用sudo或root即可。
参考:
https://go.suokunlong.cn:88/cgit/lo/core/commit/external/python3/ExternalPackage_python3.mk?id=8aae3b37a6553d645bfc94855adbbd1859e07692
Fix build error in Python3 for Raspberry pi4b, 2021-01-02
对应: makefile external/python3/ExternalPackage_python3.mk
############
# 编译环境
############
############
# 编译错误(错误具体信息记不清楚了,大概是这个意思)
############
############
# 错误处理
############
修改源码https://go.suokunlong.cn:88/cgit/lo/core/tree/external/python3/ExternalPackage_python3.mk?h=libreoffice-7-0-5#n143
修改为如下:
再执行make,编译成功
编译的源码版本:libreoffice-7-0-5
你好,请问可以分享一下吗?
[…] 我的之前一篇文章讲解了如何在 Linux 下编译 LibreOffice。编译完成后,您可以手动运行它,测试一些常见的功能看看是不是能正常工作。但是,手动运行太慢了,而且不能涵盖所有的操作和功能。这时候,“单元测试” (Unit Test) 就很有用了。 […]
有没有遇到这样的问题
你编译的是哪个版本?是在什么host系统中编译的?如果是在Ubuntu上,那么你需要安装 libfontconfig1-dev 包,Fedora下这个包叫fontconfig-devel.
想知道iOS现在如何构建,官方源码下载后按照他提供的一个过时的文档编译,在模拟器那一块出现错误,无法编译通过,也没有形成.a等文件
https://wiki.documentfoundation.org/Development/BuildingOnMac
不是mac环境, 是ios手机端的
据我所知,目前用于手机端可用的 LibreOffice 只有 Collabora Office for Android and iOS,见:https://www.collaboraoffice.com/collabora-office-android-ios-release-notes/ 。 可以直接下载已经编译好的安装包。如果要从源代码重新编译,则应当使用 online 仓库的源代码(https://git.libreofficechina.org/online/),编译过程请参考:https://collaboraonline.github.io/post/build-code-ios/
这个源码有在鲲鹏920服务器上编译通过吗
没试过不知道哦。我觉得理论上肯定能,如果出错那肯定是编译器有bug.
您好,您鲲鹏920上编译过了吗
在鲲鹏服务器上编译发现如下错误,查阅是汇编上的错误,怎么修改armhelper.s:48: 错误:junk at end of line, first unrecognized character is `@’
编译的是哪个版本,master吗?麻烦多复制一些错误提示。
在鲲鹏服务器上编译,在执行make后,提示这么个信息,编译的版本是5.4版本的,用的gcc是7.3版本的,在形成configure文件时添加的参数是–disable-gtk –without-java –with-package-format=rpm –enable-epm –with-external-tar=/home/libretars –build=arm-linux –without-doxygen –without-junit –without-help –without-helppack-integration,编译参数用的相同的参数
试试master或 libreoffice-7-1看看能不能成功编译。
这个错误,只需要修改armhelper.S文件开头的宏定义部分,把@改为#即可
应该是早期汇编的行注释时@,然而近期@已经不是汇编的注释了
你好请问下这个错误的怎么结局
config打印是下面
Mac下我没编译过,建议去 #libreoffice-dev IRC 频道请教。
dev里面的都是老外吧,没法聊呀
我想问下 有 在 mac下面 的 编译教程或者网址 吗 我是需要开发ios的 ,
对于 LibreOffice 的编译和构建而言,macOS 和 iOS 是完全不同的两个体系。
在 macOS 上构建用于台式或笔记本式电脑的 LibreOffice 应用程序,已经很成熟了。官方有支持 macOS 的编译好的软件包可供下载,构建系统方面的支持就在官方源码仓库里,官方维基也有简单的编译指南:https://wiki.documentfoundation.org/Development/BuildingOnMac
在 iOS 上构建用于手机的 LibreOffice App,是非常新的东西,官方并不支持。目前据我所知只有 Collabora 公司一家在做这件事,他们有相应的 App 供用户下载,但具体构建系统支持的代码在哪里,有没有相应的文档,我都不太清楚。
感谢两位的回复
我刚刚将 wiki 上的在 Windows 下编译的页面主要部分进行了翻译,你可以对照着看一下,也许能找到解决办法。根据我的理解,很可能是 Visual Studio 版本配置的问题。
https://wiki.documentfoundation.org/Development/BuildingOnWindows/zh-cn
https://dev-www.libreoffice.org/bin/cygwin/make-4.2.1-msvc.exe 即使翻墙也下载不了,能提供一下吗,因为根据编译·wiki说明,windows版在cygwin下只能用这个make,不能用自带的make
已保存到:https://go.suokunlong.cn:88/dl/libreoffice/external_tarballs/make-4.2.1-msvc.exe
我只在Linux下编译过,Windows下不熟。你贴的错误提示太多太乱,能否从出错的地方整理一下发出来?另外,重要的是,你在编译时使用了什么样的编译选项(autogen.input 或 autogen.sh后的选项)?
我的编译选项是
不过在配置完以后会有个WARNING : No –with-ucrt-dir not specified or dlls not found – installer will have runtime dependency
make的时候报错是ms\uplink.c(12): fatal error C1083:windows.h: No such file or directory
> D:/LibreOfficeComplie/5.4.7.2/[…]
你这是在编译 git HEAD 还是在编译 5.4.7.2 版本?
编译5.4.7.2版本的,想生成vs2015工程
那这篇文章的内容并不适合你。理论上来说发布版的源码里有生成好的 configure 等脚本,不需要再运行 autogen.sh。
而且 5.4.7 版本也太旧了,如果有符合要求的 Windows 7 和 Visual Studio 2019 version 16.4 以上版本的编译系统,建议还是从 git HEAD 或是最新版本 7.1.x 开始尝试。
据我所知,LibreOffice是通过autogen.sh脚本生成编译所在机器的configure文件,因此编译前必须运行autogen.sh,否则make找不到需要编译的目标。只不过,我没有在win下编译过,因此帮不上忙。如果有谁试过可以看一下。也可以去看看wiki页面,或者到开发者irc频道寻求帮助。
也可以试试libreoffice-7-1分支能否成功编译,这个分支已经很稳定了而且有很多性能提升。
你好,我在执行完./autogen.sh后,执行make build-nocheck,make发生错误
感谢分享!
不客气,编译时遇到问题可以随时沟通。
官方没有个微信或qq群什么的吗?arm架构编译有点难搞呀,能否支持下,给个群号
“编译完成后,执行 .instdir/program/soffice 即可运行。若在autogen.input 中启用了 “–with_package_format=rpm deb” ,则生成的安装包在 workdir/installation中。”
上面这句话不是很理解是什么意思,能否仔细说明下
你编译完成后,生成的可执行二进制程序位于你编译所在的源代码根目录下名为instdir的文件夹中,若在这个目录下执行./imstdir/program/soffice,就能直接运行。
如果你想编译生成RPM或DEB安装包(从而能像下载安装已发布的版本一样在你的linux操作系统上安装,而不是在编译所在源代码目录下通过命令行执行./imstdir/program/soffice来运行),那么在编译时你需要在autogen.input文件中(或者以autogen.sh之后所带的参数的形式)加上”–with_package_format=rpm deb”编译选项,这样在编译完成之后就会生成DEB包或RPM包,这些包位于编译所在源代码根目录下的workdir/installation文件夹中。
如果还是不理解,那么你确实需要动手一步一步实践一下,在哪一步出了问题就问具体的问题。
你可以在社区论坛中发帖提出问题,别人看到后懂的话一般都会回复你。确实有个QQ群的,但不是官方的,而是中文社区志愿者建的。我平时不上QQ,群里人多所以即使上了也不会去翻历史聊天记录,所以我觉得还是论坛里问或者回复这个博文问会好一些。