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

[1.7.2] Boost linking error (for 1.59) #1515

Closed
Arsakes opened this issue Feb 1, 2016 · 3 comments
Closed

[1.7.2] Boost linking error (for 1.59) #1515

Arsakes opened this issue Feb 1, 2016 · 3 comments

Comments

@Arsakes
Copy link

Arsakes commented Feb 1, 2016

Archlinux, boost 1.59 and pcl 1.7.2 gives following linker error:

../../lib/libpcl_visualization.so.1.7.2: undefined reference to boost::filesystem::path_traits::dispatch(boost::filesystem::directory_entry const&, std::string&)

@taketwo
Copy link
Member

taketwo commented Feb 11, 2016

Every time your system installation of Boost, VTK, Qt (or any other dependency) is updated, you need to reconfigure and recompile PCL completely. I would recommend to delete your entire build/ folder and start from scratch. Please reopen if the problem persists.

(As a side note, you probably won't be able to compile PCL on Arch at the moment, because they recently switched to VTK7, which is not supported by PCL.)

@taketwo taketwo closed this as completed Feb 11, 2016
@VictorLamoine
Copy link
Contributor

More detail about why/how VTK 7 is not compatible with PCL: #1275

@fafancier
Copy link

I have struggled with this problem. I would suggest using higher GCC and g++ to compile it.
PCL1.8.1 (PCL 1.9 also been tried)

  1. When gcc 4.7 vtk 7.1 boost 1.58
    [ 44%] Building CXX object tools/CMakeFiles/pcl_marching_cubes_reconstruction.dir/marching_cubes_reconstruction.cpp.o [ 44%] Linking CXX executable ../bin/pcl_concatenate_points_pcd ../lib/libpcl_visualization.so.1.8.1:对‘boost::filesystem::path_traits::dispatch(boost::filesystem::directory_entry const&, std::string&)’未定义的引用 collect2: 错误: ld 返回 1 tools/CMakeFiles/pcl_mesh2pcd.dir/build.make:239: recipe for target 'bin/pcl_mesh2pcd' failed make[2]: *** [bin/pcl_mesh2pcd] Error 1 CMakeFiles/Makefile2:9776: recipe for target 'tools/CMakeFiles/pcl_mesh2pcd.dir/all' failed make[1]: *** [tools/CMakeFiles/pcl_mesh2pcd.dir/all] Error 2 make[1]: *** 正在等待未完成的任务.... [ 44%] Built target pcl_concatenate_points_pcd
  2. when gcc 7.4 vtk 7.1 boost 1.58

/home/liwenfa/Download/library/pcl-pcl-1.8.1/filters/include/pcl/filters/impl/convolution.hpp:117:7: note: here case BORDERS_POLICY_DUPLICATE : convolve_cols_duplicate (output); ^~~~ /home/liwenfa/Download/library/pcl-pcl-1.8.1/filters/include/pcl/filters/impl/convolution.hpp:117:63: warning: this statement may fall through [-Wimplicit-fallthrough=] case BORDERS_POLICY_DUPLICATE : convolve_cols_duplicate (output); ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~ /home/liwenfa/Download/library/pcl-pcl-1.8.1/filters/include/pcl/filters/impl/convolution.hpp:118:7: note: here case BORDERS_POLICY_IGNORE : convolve_cols (output); ^~~~ [100%] Linking CXX executable ../bin/pcl_match_linemod_template [100%] Built target pcl_match_linemod_template [100%] Linking CXX executable ../bin/pcl_linemod_detection [100%] Built target pcl_linemod_detection

PS: I tried to upgrade boost to 1.60, which make it compile with no error , but core dump when pcl::io at runtime. I thought it is caused by confusing link .so with 1.58 and 1.60. But without 1.58, Ros can not be installed. Finally I try upgrade gcc by ln -s /usr/bin/gcc-7.4 /usr/bin/gcc and g++ as well.
I just too confusing why a pcl can't be reinstalled but others' can do and I have been done.
May this could be helpful for a try.

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

4 participants