-
-
Notifications
You must be signed in to change notification settings - Fork 4.5k
Description
qBittorrent & operating system versions
Qt: 6.7.3
Libtorrent: 2.0.10.0
Boost: 1.85.0
OpenSSL: 3.3.2
zlib: 1.3.1
Windows 11 x64 23H2 22621.4317
What is the problem?
Build instruction for qbittorrent 5.0.0 on Windows and Debian is out-of-date.
On Debian those packages are needed for Qt6 qt6-base-dev qt6-base-private-dev qt6-svg-dev qt6-tools-dev qt6-tools-private-dev. libtorrent-rasterbar on current Debian stable (bookworm) does not meet requirements.
There are some problems with post-build on Windows. Cannot launch qBittorrent because some dlls are not copied to install dir.
Steps to reproduce
- Configure
vcpkg - Install
boost-circular-bufferboost-stacktraceopensslqtbaseqtsvgqttoolslibtorrentonvcpkg - Run
cmake -G "Ninja" -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE="C:\path\to\vcpkg\scripts\buildsystems\vcpkg.cmake" -DMSVC_RUNTIME_DYNAMIC=OFF - Run
cmake --build build - Launch qBittorrent
Additional context
If nothing was changed in step 2, step 4 would got some errors like #20805 . To solve this problem, build configurations for Qt6 in vcpkg need some patch to build with C++20. I don't think it is a good idea because if vcpkg update Qt6 we need to patch these again. Is there any good solution for this?
Post-build looks fine. There are lots of dlls and qbittorrent.exe qbittorrent.pdb. But qBittorrent cannot be launched because no Qt6 platform plugins. Post-build does not deploy Qt6 platform plugins. I need to manually copy plugins from vcpkg to qBittorrent dir.
Now qBittorrent can start but no icons. I think qtsvg is missing so I copy all dlls to qBittorrent.(I only use vcpkg to build qBittorrent so copying all dlls is ok) Then everything looks normal.
I also tried to build on Debian trixie and got no problem. The only one need to changed in instructions for Debian is installed Qt6 packages not Qt5.
Log(s) & preferences file(s)
No logs. But if needed it's same as #20805 .
Edit: I forgot to explain something. I didn't use -DVCPKG_TARGET_TRIPLET="x64-windows-static". I want to build a dynamic linked binary since it's more compact. Static linked pdb file is much bigger. I think there should be an option to choose static or dynamic or explain why static linkage is mandatory.
-DVCPKG_TARGET_TRIPLET="x64-windows-static" has the same issue but no need to copy dlls.