下一个云桌面客户端构建过程

Nextcloud Desktop-Client build procedure

本文关键字:构建 过程 客户端 桌面 下一个      更新时间:2023-10-16

大家好。

我使用了 Git 关于如何构建下一个云客户端的说明:https://github.com/nextcloud/desktop/wiki/How-to-compile-the-desktop-client

我想解释一下我做了什么以及是什么试图让下一个云客户端运行:

  1. 我使用 Windows 10 创建了一个新的虚拟机,以便为我的测试获取干净的环境

安装Qt

  1. >我从 https://www.qt.io/download-qt-installer?hsCtaTracking=9f6a2170-a938-42df-a8e2-a9f0b1d6cdce%7C6cb0de4f-9bb5-4778-ab02-bfb62735f3e5 下载了Qt安装程序
  2. 在Qt安装向导中,我选择了Qt 5.11.0和MinGW 4.9.1进行安装。
  3. 在我的 PATH 变量中,我添加了 C:\...\Qt\5.11.0

清明

  1. 我从 https://cmake.org/download/下载了Windows win64-x64安装程序并安装了它
  2. 在我的 PATH 变量中,我添加了 C:\...\Cmake\bin

兹利布

  1. 我从 https://github.com/maxirmx/Dist_zlib 下载了 64 位版本并解压缩了文件夹
  2. 在我的 PATH 变量中,我添加了 C:\...\Zlib\bin 和 C:\...\Zlib\lib

Qt钥匙扣

  1. 我从 https://github.com/frankosterfeld/qtkeychain.git 构建中克隆了存储库,并得到了三个文件:qt5keychain.dll,qt5keychain.exp,qt5keychain.lib
  2. 在我的 PATH 变量中,我添加了包含这三个文件的 C:\...\QtKeychain\Release

OpenSSL

  1. https://github.com/nextcloud/desktop/wiki/System-requirements-for-compiling-the-desktop-client 提供的OpenSLL索引链接不提供任何OpenSSL 1.1.x版本。提供的最新版本是 1.0.2。所以我搜索了一下,我从 https://slproweb.com/products/Win32OpenSSL.html 下载了Win64 OpenSSL v1.1.0i。
  2. 在我的 PATH 变量中,我添加了 C:\...\OpenSSL-Win64\bin,其中包含 openssl.exe、libcrypto-1_1-x64.dll、openssl.cfg 等等

吉特

  1. 我从 https://git-scm.com/downloads 下载了 Git 安装程序,并且没有对安装程序进行任何更改并安装了它

视觉工作室

  1. 我安装了带有C++软件包和以下附加组件的VS 2017社区版: 适用于 CMake 的可视化C++工具 Windows 10 SDK for UWP C++ (不确定是否仅此而已(

创建下一个云弹出文件

  1. 在 Git Bash 中,我导航到/c/.../nextcloud/desktop/
  2. 我跑: 'Mkdir build'
  3. 已导航到/c/.../nextcloud/desktop/cmake\ 并运行:
    cmake -G "Visual Studio 15 2017 Win64" .. -DCMAKE_INSTALL_PREFIX=/c/.../nextcloud/desktop/build/ -DQTKEYCHAIN_INCLUDE_DIR=/c/QTKeychain/Release/ -DCMAKE_BUILD_TYPE=Debug -DNO_SHIBBOLETH=1
  4. 完成(无错误(

构建下一个云客户端

  1. In/c/.../nextcloud/desktop/cmake I run:
    cmake --build . --config Debug --target nextcloud

  2. 收到文件客户端加密.cpp和httpcredentials.cpp找不到keychain.h和qkeychain_export.h的错误,所以我将这两个文件(和钥匙串.cpp(从QtKeychain存储库复制到桌面/src/libsync下文件的位置,错误不再出现

  3. 再次运行 19。 现在我得到了 50 多个错误,例如:

    clientsideencryption.obj : 错误 LNK2019 BIO_read: 函数 "类 QByteArray __cdecl OCC::'匿名命名空间'::BIO2ByteArray(struct bio_st *(" (?BIO2ByteArray@?A0xd4adced4@OCC@@ya?AVQByteArray@@PEAUbio_st@@@z("。[C:\Nextcloud_64\desktop\cmake\src\libsyncextcloudsync.vcxproj]

    clientsideencryption.obj : 错误 LNK2019 BIO_write: 函数 "类 QByteArray __cdecl OCC::EncryptionHelper::p rivateKeyToPem(class QSslKey(" (?privateKeyToPem@EncryptionHelper@OCC@@ya?AVQByteArray@@VQSslKey@@@z("。[C:\Nextcloud_64\desktop\cmake\src\libsyncextcloudsync.vcxproj]

我不确定这个问题是否来自OpenSLL或QtKeychain。我是否错过了复制或连接?

谁能知道帽子是否正确,我正在做的事情是否正确,以及是否有任何方法可以构建客户端?

提前非常感谢

GitHub上的一个问题只是把我引向这里的问题。如果有人正在尝试相同的方法,我想添加一些提示:

我们现在有一个官方存储库,其中包含适用于 Windows 的构建脚本,用于创建每日构建以及我们的发布版本:

https://github.com/nextcloud/client-building/

如果你不想为Windows构建,你可能会在那里得到一些有用的提示;-(

关于窗户: 好提示@mn_dc466 :) 首次设法生成客户端后,只需打开生成文件夹中的 Visual Studio 解决方案文件,即可使用修改重新生成和调试,而无需完全重新生成整个项目。