-
-
Notifications
You must be signed in to change notification settings - Fork 4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Linker broken after IP parser changes #6721
Comments
Thanks for the info. As you correctly guessed, this symbol was introduced by 8f6e04d. It should, however, be provided by libtorrent; as least, it is in my case (with
In your case, the symbol must either be missing, or its signature doesn't match. |
Done. Happy to help. It looks like its missing as the grepped objdump comes up empty. Widening the grep a little gives this:
Let me know if you need anything else. Cheers. |
Thanks! That was indeed the missing piece of the puzzle. It turns out that Boost defines For qBittorrent, C++11 support is explicitly enabled. For libtorrent, this is not the case. Yet If we cannot avoid using |
For what its worth, I recompiled libtorrent and qbittorrent both using CXXFLAGS="-std=c++0x" and that has (after a HEAP of warnings while compiling libtorrent) produced binaries that link and run semi-happily. I say semi-happily because the latest commit has broken daemon mode (running without -d still works fine). But i'll raise a seperate issue for that. |
the next major release of libtorrent (1.2) will require C++11. |
Turns out, compiling libtorrent/qbittorrent both with |
@Arathen: In your case, adding |
I doubt qBt may link successfully to a libtorrent, compiled not in C++11 mode (see #5265 and reference therein). |
Thanks for the link, @evsh. If I understand correctly, these two issues are the same, just over different symbols. Given how there are 10 different |
With each C++ version step, libtorrent migrates from |
This is "documented" requirement in my PR #5310 doing the IPFilter parser refactoring.
extra_compile_args = parse_cmd(extra_cmd, '-D', True) + arch() \
+ target_specific() + ['-std=c++11'], in The 2nd part may or may not affect only the python bindings. PS: If you're on the 1.1.x series then I haven't tested them yet. |
Same thing happening to me on Linux Mint 18.03 x86_64 using qBittorrent-release-4.0.4 (also confirmed on 4.0.3). Adding BOOST_ASIO_DISABLE_STD_ARRAY to DEFINES in qBittorrent's src/src.pro as suggested by @fbriere did it for me. |
I had no issues with latest master linked with libtorrent RC_1_1, but as devs started to move to v1.2 and next beta will be using that version, I cleaned up my environment and went to full rebuild of qBt master against libtorrent RC_1_2. Problem is that it fails at linking stage, as:
For those that are already using libtorrent 1.2, any clues? |
my guess is that you build libtorrent and qBittorrent with different versions of C++. |
@WolfganP current qbt master (aka 4.2.x) requires at least c++14. And from the errors above it seems you have libtorrent built with c++11. This is a problem because some symbols exposed by libtorrent change type between c++ versions. You should rebuild libtorrent using c++14. I think doing
when configuring libtorrent is enough. |
Please provide the following information
qBittorrent version and Operating System:
qBittorrrent version - commit 67f44e0 from branch 'master'
OS is Ubuntu 16.04.2 LTS armhf running on a Raspberry Pi 2
If on linux, libtorrent and Qt version:
libtorrent 1.0.11 (commit bda4fd60c4c798f7eb0078f727e08c3e4d228669 from branch RC_1_0 compiled from source)
Qt 5 v5.5.1
What is the problem: After compiling successfully, linking fails with the following error -
What is the expected behavior: Linked binary produced.
Steps to reproduce: git clone // configure // make on the appropriate platform with appropriate libs.
Extra info(if any): This seems to have been introduced with the IP parser changes of 25th April. qBittorrent from git source compiled and linked successfully before then.
The text was updated successfully, but these errors were encountered: