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
Clang and Boost in Ubuntu 16.04 #967
Comments
Were you getting this for I think the solution might be to seek out a more robust way to decide between using I wonder if it may be possible to make the decision in a more robust way inside of cmake, and then pass along a compile definition to decide whether |
Yes it was
We can always do the check in CMake and make a define of our own to ensure that everything is well defined.. |
Yeah, I'm just not clear on whether cmake has the necessary information to decide whether we need to use @mkoval might be able to shed some light on the issue if he remembers the circumstances surrounding the old issue. From what I can gather, compiling with clang makes it difficult to identify the version of If cmake had a way for us to recognize what version of |
Since the problem only appears with Clang and linux distributions, one quick fix would be to undefine Another more robust check would be to do some CMake magic to detect the actual version of I am not an expert of these things, so correct me if I am wrong anywhere..! |
Well, one option would be to use CMake's compile test functionality to exploit this particular condition:
We could use |
For the record, I really like @psigen 's solution for this. It sounds like the most robust and straightforward way to deal with this bizarre and tricky issue. |
Hi! I encountered a similar case and here's what I discovered -- hopefully it'll be of some use for you (if not, then sorry for the noise). In Magnum I have an integration for DART (contributed by @costashatz) and when upgrading to Travis CI 16.04 (from 14.04) I started getting a similar linker issue -- however with GCC 4.8 and not Clang. I have a bit special case, since I need to maintain GCC 4.8 compatibility there (for people running Magnum server-side on CentOS which is still on 4.8) yet OTOH I need 16.04 for newer packages like Eigen. Here is the linker error in full:
Note the (highlighted) linker error to
Neither of these are feasible in my case, so I'll be disabling DART builds on Linux and enabling them on macOS instead (I hope Regarding Clang -- on Linux, Clang is using Hope this helps :) EDIT: btw. if you say that you need at least |
Closing as Boost dependency is completely removed by DART 6.13! |
When compiling DART 6.3, 6.4 or the master under Ubunut 16.04 with Clang, I am getting some weird linker errors related to Boost. The library builds nicely but when I link to it everything fails. With gcc, it works like a charm. Digging up a bit more, I found this bug. I tried with Clang 3.8 and 4.0 and I get the same thing. Just making this issue if anyone gets the same error. The solution is to use gcc or update gcc to newer version in order to use clang.
The text was updated successfully, but these errors were encountered: