[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.