-
Notifications
You must be signed in to change notification settings - Fork 486
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
[Bug Fix] Fix windows compilation #3330
Conversation
178e6b9
to
f9e61d2
Compare
f9e61d2
to
b06a5a6
Compare
it looks like the windows build still has some issues |
Yes. Gazebo using c++17 syntax and the 3rdparty is compile with c++11. This is abi issue. |
Are you sure? The problem seems that (just on Windows) protobuf is now updated to version 23, that has several changes including the public dependency on abseil (see gazebosim/gz-msgs#346 for similar issue). I think changing https://github.com/gazebosim/gazebo-classic/blob/fbb3d12273b02a382085ebf1f1ba72c4da315112/cmake/gazebo-config.cmake.in#LL169C1-L171C56 to:
may work and reduce the risk of regression for older setups, but I need to do some tests to confirm this. |
It my analysis with google search and see similar issues. |
No, abseil is compiled with C++17, see conda-forge/conda-forge-pinning-feedstock#4075 (comment) . I guess that you see similar errors in Google searches as the abseil ABI depends on the C++ standard version used in compilation, and hence if there is a mismatch, some abseil symbol can be missing in the actual compiled library, resulting in a "error LNK2019: unresolved external symbol". However, this is not the only reason a linker may not find a symbol: in this case I think that the linker does not find the abseil symbol simply because nobody is linking the abseil shared libraries. |
Note that even if we fix compilation with new protobuf, the Windows build would still fail due to conda-forge/libignition-msgs1-feedstock#30 (that is the reason why there is a failure now only on Windows). So we need to wait also for conda-forge/libignition-msgs1-feedstock#83 to merged, or in the meanwhile we can pin manually libprotobuf to 3.21 . |
Can you pin manually libprotobuf to 3.21? I also send you a respond email regards your email you sending me about my other PRs. |
I hope to fix conda-forge/libignition-msgs1-feedstock#83 soonish (1/2 days) and then fix Gazebo Classic compatibility with protobuf 4.23.2, so pinning should not be necessary.
Sure! Unfortunatly there have been some unplanned activities that took my time, I will contact you! |
Thank you for your quick respond. I am closing this PR. |
@traversaro Why you close this PR? |
It was superseded by conda-forge/libignition-msgs1-feedstock#86 , see conda-forge/conda-forge-pinning-feedstock#4502 for the context. |
Unfortunatly this turned out to be more complicated then expected, as it also required several changes deep down in google's stack (protobuf&abseil):
Anyhow, we should be converging soonish. |
Fix windows compilation.