Skip to content
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

Undefined symbol: _ZN11btMultiBody22addJointTorqueMultiDofEiPKF #82

Closed
WatsonZhouAnda opened this issue Aug 31, 2019 · 10 comments
Closed

Comments

@WatsonZhouAnda
Copy link

After installing all the required dependencies and modify the Makefile in DeepMimicCore/, I try to run the python DeepMimic.py --arg_file args/run_humanoid3d_spinkick_args.txt in Ubuntu 16.04. However, I got the ImportError: /home/watson/Downloads/DeepMimic/DeepMimiCore/_DeepMimicCore.so: undefined symbol: _ZN11btMultiBody22addJointTorqueMultiDofEiPKF

I have successfully added the dll of libGLEW.so.2.1, libGLEW.so.2.1.0, libGLEW.so from /usr/lib64 to /usr/lib, and built the wrapper as far as I know.

@WatsonZhouAnda
Copy link
Author

@xbpeng
Is there anything advice for me? Thanks!

@vkozin97
Copy link

vkozin97 commented Sep 5, 2019

I've also had an error with not finding libGLEW.so.2.1 which was solved by adding the path "/usr/lib64" to the "/etc/ld.so.conf.d/libc.conf" file. After that fix I'm now facing the same issue:

ImportError: /localDeepMimic/DeepMimic-master/DeepMimicCore/_DeepMimicCore.so: undefined symbol: _ZN11btMultiBody22addJointTorqueMultiDofEiPKf

@WatsonZhouAnda , haven't you found a solution yet?

@xbpeng
Copy link
Owner

xbpeng commented Sep 6, 2019

That looks like it might be an issue with linking the bullet library. Maybe there's something wrong with the path to the lib?

@zhihaocheng
Copy link

That looks like it might be an issue with linking the bullet library. Maybe there's something wrong with the path to the lib?

Hello, xbpeng. I meet the same problem. And I am sure the bullet library path is right. Whether the bullet should be 2.87 version?

@vkozin97
Copy link

vkozin97 commented Sep 19, 2019

That looks like it might be an issue with linking the bullet library. Maybe there's something wrong with the path to the lib?

@xbpeng Which directory of already built bullet lib should be specified in DeepMimicCore's Makefile? I've specified this path: BULLET_INC_DIR = ../../bullet3-2.88/src. Isn't this path correct? Should I maybe use another directory inside bullet?

@WatsonZhouAnda
Copy link
Author

@vkozin97 I tried again but not yet.

@avi-grtl
Copy link

I would say check your nVidia drivers, I was having the same error and installing/using nVidia drivers >390.x helped. I also made sure to build bullet2.88 with the -DUSE_DOUBLE_PERCISION=OFF flag. I then put the bullet dir as /usr/local/include/

I will double check that later. but give it a go.

@asawaswapnil
Copy link

asawaswapnil commented Sep 24, 2019

Hi, My Nvidia Driver is 418.87.00. and I used bullet 2.88 with DUSE_DOUBLE_PERCISION=OFF flag. It is still showing the error:


[[47331,1],0]: A high-performance Open MPI point-to-point messaging module
was unable to find any relevant network interfaces:

Module: OpenFabrics (openib)
Host: ip-172-31-42-21

Another transport will be used instead, although this may result in
lower performance.


Traceback (most recent call last):
File "/home/ubuntu/dg/DeepMimic/DeepMimicCore/DeepMimicCore.py", line 14, in swig_import_helper
return importlib.import_module(mname)
File "/usr/lib/python3.5/importlib/init.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 986, in _gcd_import
File "", line 969, in _find_and_load
File "", line 958, in _find_and_load_unlocked
File "", line 666, in _load_unlocked
File "", line 577, in module_from_spec
File "", line 906, in create_module
File "", line 222, in _call_with_frames_removed
ImportError: /home/ubuntu/dg/DeepMimic/DeepMimicCore/_DeepMimicCore.so: undefined symbol: _ZN11btMultiBody22addJointTorqueMultiDofEiPKf

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "DeepMimic.py", line 9, in
from env.deepmimic_env import DeepMimicEnv
File "/home/ubuntu/dg/DeepMimic/env/deepmimic_env.py", line 3, in
from DeepMimicCore import DeepMimicCore
File "/home/ubuntu/dg/DeepMimic/DeepMimicCore/DeepMimicCore.py", line 17, in
_DeepMimicCore = swig_import_helper()
File "/home/ubuntu/dg/DeepMimic/DeepMimicCore/DeepMimicCore.py", line 16, in swig_import_helper
return importlib.import_module('_DeepMimicCore')
File "/usr/lib/python3.5/importlib/init.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
ImportError: No module named '_DeepMimicCore'

@asawaswapnil
Copy link

asawaswapnil commented Sep 24, 2019

solved by

wget https://github.com/bulletphysics/bullet3/archive/2.88.tar.gz
mv 2.88.tar.gz bullet3-2.88.tar.gz

tar xvzf bullet3-2.88.tar.gz

cd bullet3-2.88

sed -i 's/-DUSE_DOUBLE_PRECISION=ON/-DUSE_DOUBLE_PRECISION=OFF/g'

build_cmake_pybullet_double.sh

./build_cmake_pybullet_double.sh

cd build_cmake

make install

cd ../..

@WatsonZhouAnda
Copy link
Author

@asawaswapnil
Yeah, It's right
Before building the Bullet(No matter the version is 2.88 or 2.87) by "./build_cmake_pybullet_double.sh" in terminal, you have to CHANGE the "DUSE_DOUBLE_PRECISION" in build_cmake_pybullet_double.sh from "ON" to "OFF"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants