undefined symbol: when trying PointNet++
Created by: MiiViiDynamics
Hi
I follow the following process to do the test. https://github.com/PaddlePaddle/models/tree/develop/PaddleCV/3d_vision/PointNet++
But I tried with the following paddle version, and get the same error.
- pip paddle gpu v1.8.1 with models tag v1.8.0
- conda paddle gpu v1.8.1 with models tag v1.8.0
- docker paddle gpu v1.8.1 with models tag v1.8.0
- docker paddle gpu v1.7.1 with models tag v1.7.0
I have set the LD_LIBRARY_PATH, and from the log, pointnet_lib.so is found. But failed due to link issue. Did I miss anything?
root@907039411a82:/paddle/models/PaddleCV/3d_vision/PointNet++/ext_op/src# ls farthest_point_sampling_op.cc gather_point_op.cu make.sh query_ball_op.cu three_nn_op.cc farthest_point_sampling_op.cu group_points_op.cc pointnet_lib.so three_interp_op.cc three_nn_op.cu gather_point_op.cc group_points_op.cu query_ball_op.cc three_interp_op.cu util.cu.h root@907039411a82:/paddle/models/PaddleCV/3d_vision/PointNet++/ext_op/src# bash make.sh /usr/local/lib/python2.7/dist-packages/paddle/include /usr/local/lib/python2.7/dist-packages/paddle/libs
root@907039411a82:/paddle/models/PaddleCV/3d_vision/PointNet++/ext_op/src#
root@907039411a82:/paddle/models/PaddleCV/3d_vision/PointNet++/ext_op/src#
root@907039411a82:/paddle/models/PaddleCV/3d_vision/PointNet++/ext_op/src# export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:python -c 'import paddle; print(paddle.sysconfig.get_lib())'
root@907039411a82:/paddle/models/PaddleCV/3d_vision/PointNet++/ext_op/src# cd ..
root@907039411a82:/paddle/models/PaddleCV/3d_vision/PointNet++/ext_op# export PYTHONPATH=$PYTHONPATH:pwd
root@907039411a82:/paddle/models/PaddleCV/3d_vision/PointNet++/ext_op# python tests/test_farthest_point_sampling_op.py
W0531 08:31:49.706547 225 dynamic_loader.cc:120] Can not find library: /paddle/models/PaddleCV/3d_vision/PointNet++/ext_op/src/pointnet_lib.so. The process maybe hang. Please try to add the lib path to LD_LIBRARY_PATH.
Traceback (most recent call last):
File "tests/test_farthest_point_sampling_op.py", line 20, in
import pointnet_lib
File "/paddle/models/PaddleCV/3d_vision/PointNet++/ext_op/pointnet_lib.py", line 19, in
fluid.load_op_library(os.path.join(file_dir, 'src/pointnet_lib.so'))
File "/usr/local/lib/python2.7/dist-packages/paddle/fluid/framework.py", line 5035, in load_op_library
core.load_op_library(lib_filename)
paddle.fluid.core_avx.EnforceNotMet:
C++ Call Stacks (More useful to developers):
0 std::string paddle::platform::GetTraceBackString<char const*>(char const*&&, char const*, int) 1 paddle::platform::EnforceNotMet::EnforceNotMet(std::__exception_ptr::exception_ptr, char const*, int) 2 paddle::platform::dynload::GetOpDsoHandle(std::string const&) 3 paddle::framework::LoadOpLib(std::string const&)
Error Message Summary:
Error: Failed to find dynamic library: /paddle/models/PaddleCV/3d_vision/PointNet++/ext_op/src/pointnet_lib.so ( /paddle/models/PaddleCV/3d_vision/PointNet++/ext_op/src/pointnet_lib.so: undefined symbol: _ZNK6paddle9framework12OperatorBase13DebugStringExB5cxx11EPKNS0_5ScopeE ) Please specify its path correctly using following ways: Method. set environment variable LD_LIBRARY_PATH on Linux or DYLD_LIBRARY_PATH on Mac OS. For instance, issue command: export LD_LIBRARY_PATH=... Note: After Mac OS 10.11, using the DYLD_LIBRARY_PATH is impossible unless System Integrity Protection (SIP) is disabled. at (/paddle/paddle/fluid/platform/dynload/dynamic_loader.cc:177)