-
Notifications
You must be signed in to change notification settings - Fork 2.3k
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
CXX11 ABI incompatibility when using Open3D + ROS + PyTorch/Tensorflow together #3432
Comments
@benjaminum I see that |
@zpw6106 Is it possible to build ROS with |
@ssheorey At present, it is impossible to do that, this leads to the link errors. I still haven't solved it. |
Sry for the late reply @zpw6106 . libtorch should be sufficient but will require changes to the cmake files. There could be problems using an op library linking to libtorch with a different ABI than the pytorch libs. |
@zpw6106 If you build either PyTorch or Tensorflow from source with the new CXX11_ABI, i.e. with Closing this issue since it is up to PyTorch / TF to update their default build options. |
Do you have better suggestions to solve the link error with other libraries?eg. ros undefined reference to `ros::init(int&, char**, std::string const&, unsigned int)'
Describe the bug
Errors occur when Open3D library is linked together with ros.
To Reproduce
Steps to reproduce the behavior:
When I want to use the latest version to develop with the ROS system, I encountered a link error
Expected behavior
The code should compile and work on major platforms including Windows, macOS and linux.
Environment (please complete the following information):
Ubuntu 18.04
Python 3.8
0.12.0
no
build from source
gcc 9.3
Additional context
I have successfully used open3d 0.10.0 and ROS to develop laser slam before. Now when I update to the latest version, I encounter some link errors related to the ROS system, such as undefined reference to ros::init(int&, char**, std::string const&, unsigned int). After we search the relevant errors, like 2286. This error can be corrected by setting cmake flag -DGLIBCXX_USE_CXX11_ABI=ON. Unfortunately, this will make it impossible to compile open3d_ML modules, because they do not use C + + 11ABI both TensorFlow and PyTorch, as shown in note.
cmake -DGLIBCXX_USE_CXX11_ABI=ON -DBUILD_TENSORFLOW_OPS=ON
will lead to errors simultaneously. Is there any better solution instead of set the cmake flag? I want to use the open3d_ML module at the same time.The text was updated successfully, but these errors were encountered: