Incomplete export of the libraries breaking compiliation for other libraries #21202
Unanswered
stevefan1999-personal
asked this question in
Q&A
Replies: 1 comment
-
I feel like this is a contradiction in itself. qt5-base already takes around 30 min to build.... |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Describe the bug
Ditto as title
Environment
To Reproduce
Steps to reproduce the behavior:
Expected behavior
It should compile and produce executable artifacts
Failure logs
Except it spams "nope, I can't find some symbols, despite they should have had been exported"
Additional context
Proof of it being an incompletely exported library: Using my fully exported library to fool the compiler but keep the vcpkg originally built DLL in the binary directory, I was getting "entrypoint not found" error, which means the originally built DLL is also (mysteriously) missing this symbol, no wonder why the compiler is complaining back in the IDE.
Thus, I was able to get it working by manually compiling libtorrent with CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS and shimming the DLL with it with this fully exported one.
However, when I was about to make a patch regarding this, I see that in the guideline that adding CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS is disallowed:
So, we had a dilemma here: We cannot build packages with CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS, yet (maybe the one and only way) to make it work is to use this option.
Yet, libtorrent is impossible to build in static linkage as it creates a huge binary of over 100MB, Nobody wants to wait for half an hour to let it build.
Finally, I suspect there's something wrong with LTCG, or why this would happen will remain a mystery.
Beta Was this translation helpful? Give feedback.
All reactions