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


#1

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

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

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


#2

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


#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);


#5

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


#6

目前就是用的fedora的server版本去做的,生成的上图文件不知是否正确,以及怎样去生成msi格式的安装文件


#7

当前正在生成的是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从编译环境上拷贝下来,最方便省事儿。


#8

感谢回复,编译后的这些文件怎样去使用呢?是直接安装好客户端后直接替换这些重新编译好的文件就可以吗?


#10

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


#11

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


#12

编译后替换文件到安装目录下,提示动态库链接问题是什么原因呢
image
image