下一个云桌面客户端构建过程
Nextcloud Desktop-Client build procedure
大家好。
我使用了 Git 关于如何构建下一个云客户端的说明:https://github.com/nextcloud/desktop/wiki/How-to-compile-the-desktop-client
我想解释一下我做了什么以及是什么试图让下一个云客户端运行:
- 我使用 Windows 10 创建了一个新的虚拟机,以便为我的测试获取干净的环境
安装Qt
- >我从 https://www.qt.io/download-qt-installer?hsCtaTracking=9f6a2170-a938-42df-a8e2-a9f0b1d6cdce%7C6cb0de4f-9bb5-4778-ab02-bfb62735f3e5 下载了Qt安装程序
- 在Qt安装向导中,我选择了Qt 5.11.0和MinGW 4.9.1进行安装。
- 在我的 PATH 变量中,我添加了 C:\...\Qt\5.11.0
清明
- 我从 https://cmake.org/download/下载了Windows win64-x64安装程序并安装了它
- 在我的 PATH 变量中,我添加了 C:\...\Cmake\bin
兹利布
- 我从 https://github.com/maxirmx/Dist_zlib 下载了 64 位版本并解压缩了文件夹
- 在我的 PATH 变量中,我添加了 C:\...\Zlib\bin 和 C:\...\Zlib\lib
Qt钥匙扣
- 我从 https://github.com/frankosterfeld/qtkeychain.git 构建中克隆了存储库,并得到了三个文件:qt5keychain.dll,qt5keychain.exp,qt5keychain.lib
- 在我的 PATH 变量中,我添加了包含这三个文件的 C:\...\QtKeychain\Release
OpenSSL
- 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。
- 在我的 PATH 变量中,我添加了 C:\...\OpenSSL-Win64\bin,其中包含 openssl.exe、libcrypto-1_1-x64.dll、openssl.cfg 等等
吉特
- 我从 https://git-scm.com/downloads 下载了 Git 安装程序,并且没有对安装程序进行任何更改并安装了它
视觉工作室
- 我安装了带有C++软件包和以下附加组件的VS 2017社区版: 适用于 CMake 的可视化C++工具 Windows 10 SDK for UWP C++ (不确定是否仅此而已(
创建下一个云弹出文件
- 在 Git Bash 中,我导航到/c/.../nextcloud/desktop/
- 我跑: 'Mkdir build'
- 已导航到/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
- 完成(无错误(
构建下一个云客户端
-
In/c/.../nextcloud/desktop/cmake I run:
cmake --build . --config Debug --target nextcloud
-
收到文件客户端加密.cpp和httpcredentials.cpp找不到keychain.h和qkeychain_export.h的错误,所以我将这两个文件(和钥匙串.cpp(从QtKeychain存储库复制到桌面/src/libsync下文件的位置,错误不再出现
- 再次运行 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 解决方案文件,即可使用修改重新生成和调试,而无需完全重新生成整个项目。
- 下一个云桌面客户端构建过程
- cmake在构建过程中使用另一个工具检测标志
- 尝试在 AIX 6.1 上创建构建过程
- C++构建过程 - lib 依赖项
- 在构建过程中捕获所有编译器调用和命令行参数
- MSVC2013:如何避免在错误地使用预构建脚本中止构建过程(错误MSB3073:VCEnd"退出,代码为 -1)
- 如何在节点GYP构建过程中包括Tesseract库
- 如何使用CMAKE在项目构建过程中构建SDL2
- 找不到构造函数 - 如何将 CPP 文件添加到 Qt 构建过程
- 在Docker构建过程中安装C 软件包
- 在构建过程中更改Boost库的路径
- 为什么Qt Creator找到typedef,而不是构建过程
- 应用程序停滞在构建/运行过程中
- Emacs在Windows7上构建过程
- C++构建过程
- 在构建过程中捕获特定基础成员的异常
- 在构建过程中构建第三方库
- Ros安装在构建过程中卡住
- Visual Studio -如何自动化构建过程
- 在一行中定义多个变量,这能为构建过程提供任何优化吗?