写了一个Seafile Window客户端编译的教程

由于Seafile官方的文档包含Windows客户端的编译,我写了一个编译的教程。
采用了交叉编译的环境,因此可以一个Makefile编译两个平台的客户端,理论上也可以编译MacOS的客户端,可是我并没有MacOS系统,于是没有支持。

编译完整步骤放在了我的博客:
http://ilovecpp.com/2018/06/25/seafile-compile/

希望能够对想学习seafile源码的你,有所帮助。我只测试了fedora平台,如果你编译出现了任何问题,欢迎给我留言。

3 个赞

感谢你的付出,我正在点滴学习

你好,按照你的方法在centOS上编译windows客户端,出现大量的下面错误,请问你那边遇到过吗,谢谢
/usr/i686-w64-mingw32/sys-root/mingw/include/c++/istream:179:7: error: ‘std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(int&)’ cannot be overloaded

/usr/i686-w64-mingw32/sys-root/mingw/include/qt5/QtCore/qtypetraits.h:230:19: error: redefinition of ‘struct QtPrivate::is_integral’
template<> struct is_integral : true_type { };
/usr/i686-w64-mingw32/sys-root/mingw/include/qt5/QtCore/qdatastream.h:144:18: error: ‘QDataStream& QDataStream::operator>>(int&)’ cannot be overloaded
QDataStream &operator>>(bool &i);

还是用fedora吧,centos上的yum资源太老,除非你自己找rpm包,用fedora省事儿多了

当前正在生成的是searpc-async-client.exe,应该是searpc的一个使用demo,如果你不使用的话,没影响。如果你想尝试的话,
对照libtool官网看一下吧
https://www.gnu.org/software/libtool/manual/html_node/File-Name-Conversion-Failure.html

另外,msi是windows上打包的工具,不知道有没有交叉编译的版本,你可以查查msdn,或者在windows进行打包。我知道一个Linux上支持交叉编译的打包工具:mingw32-nsis,包管理器就能找到。不过你还要学习nsis脚本的编写。

自己用的话还是手动的把这些依赖的dll从编译环境上拷贝下来,最方便省事儿。

请教下,按照文档已成功编译出seafile-applet.exe,但运行时,Window任务栏没有托盘图标,图标没有显示,但位置是空出来的,可以鼠标点击进行相关操作,请问可能是什么原因呢,谢谢!

把编译环境上的imageformats目录里边的dll(保留目录),一并拷贝下来

你好,我想学习一下linux和windows编译,看到了您已经编译了,但是在下载您那个脚本,发现链接打不开了,可以在这里更新一下吗?

您好,可以给我发一份楼主的那个Makefile吗?我在看他的博客,还是不知道怎么编译。。

最近比较忙,没有看这个论坛,有问题,你可以直接在我博客里边留言的,会有邮件通知的。makefile:https://gist.githubusercontent.com/baixiangcpp/201aa6f32b14ae89cf70acd143274b7d/raw/877d04c1cb95c76531f09d2943b6957387ff3da2/Makefile

编译环境上的 dll 全部拷贝下来,像这样的结构

应该可以留的
脚本在这里:https://gist.github.com/baixiangcpp/7e10afee74e25c0bc738ad2e8d1f3d4a

感谢回复,已经编译出文件,拷贝了编译环境上的 dll 文件,在打开客户端时候根据缺少的dll相关提示同时拷贝了相关的dll文件后打开seafile客户端提示如下图所示不知是什么原因?

使用 https://github.com/lucasg/Dependencies/releases 这个工具看一下,缺什么dll,就从编译环境拷贝什么dll,额外需要把Qt里边的"platforms" "imageformats"保留目录拷贝到同一个路径

请问 windows版 客户端 源码在哪里能下载呢

没看过新版本的代码,无法正常使用,具体是什么现象?

你好,请教一个问题,我这边在fedora环境上交叉编译出exe可执行程序,并且将编译环境上exe程序需要的dll动态库以及platforms和imageformats两个目录拷贝到同一个路径下了,但是在windows环境上双击seafile-applet.exe程序时,会报“qt.qpa.plugin:Could not find the QT platform plugin “windows” in “” even though it was found”这种错误,请问有什么解决办法吗?

我也是遇到这种错误,大神,你解决了不?

你搞定了不?相互交流一下,我也是这个问题,我留个微信号吧:13338859466