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

The library does not build on CentOS 6 #1767

Closed
nicoulaj opened this issue Nov 30, 2016 · 4 comments
Closed

The library does not build on CentOS 6 #1767

nicoulaj opened this issue Nov 30, 2016 · 4 comments

Comments

@nicoulaj
Copy link

nicoulaj commented Nov 30, 2016

Your Environment

Expected Behavior

The library compiles without error.

Current Behavior

The library compilation fails with the following error:

==> default: /home/vagrant/pcl/io/include/pcl/io/impl/auto_io.hpp: In function \u2018int pcl::io::load(const std::string&, pcl::PointCloud<PointT>&)\u2019:
==> default: /home/vagrant/pcl/io/include/pcl/io/impl/auto_io.hpp:58: error: \u2018struct std::basic_string<char, std::char_traits<char>, std::allocator<char> >\u2019 has no member named \u2018string\u2019
==> default: /home/vagrant/pcl/io/include/pcl/io/impl/auto_io.hpp: In function \u2018int pcl::io::save(const std::string&, const pcl::PointCloud<PointT>&)\u2019:
==> default: /home/vagrant/pcl/io/include/pcl/io/impl/auto_io.hpp:78: error: \u2018struct std::basic_string<char, std::char_traits<char>, std::allocator<char> >\u2019 has no member named \u2018string\u2019
==> default: /home/vagrant/pcl/io/src/auto_io.cpp: In function \u2018int pcl::io::load(const std::string&, pcl::PCLPointCloud2&)\u2019:
==> default: /home/vagrant/pcl/io/src/auto_io.cpp:51: error: \u2018struct std::basic_string<char, std::char_traits<char>, std::allocator<char> >\u2019 has no member named \u2018string\u2019
==> default: /home/vagrant/pcl/io/src/auto_io.cpp: In function \u2018int pcl::io::load(const std::string&, pcl::PolygonMesh&)\u2019:
==> default: /home/vagrant/pcl/io/src/auto_io.cpp:73: error: \u2018struct std::basic_string<char, std::char_traits<char>, std::allocator<char> >\u2019 has no member named \u2018string\u2019
==> default: /home/vagrant/pcl/io/src/auto_io.cpp: In function \u2018int pcl::io::load(const std::string&, pcl::TextureMesh&)\u2019:
==> default: /home/vagrant/pcl/io/src/auto_io.cpp:93: error: \u2018struct std::basic_string<char, std::char_traits<char>, std::allocator<char> >\u2019 has no member named \u2018string\u2019
==> default: /home/vagrant/pcl/io/src/auto_io.cpp: In function \u2018int pcl::io::save(const std::string&, const pcl::PCLPointCloud2&, unsigned int)\u2019:
==> default: /home/vagrant/pcl/io/src/auto_io.cpp:109: error: \u2018struct std::basic_string<char, std::char_traits<char>, std::allocator<char> >\u2019 has no member named \u2018string\u2019
==> default: /home/vagrant/pcl/io/src/auto_io.cpp: In function \u2018int pcl::io::save(const std::string&, const pcl::TextureMesh&, unsigned int)\u2019:
==> default: /home/vagrant/pcl/io/src/auto_io.cpp:139: error: \u2018struct std::basic_string<char, std::char_traits<char>, std::allocator<char> >\u2019 has no member named \u2018string\u2019
==> default: /home/vagrant/pcl/io/src/auto_io.cpp: In function \u2018int pcl::io::save(const std::string&, const pcl::PolygonMesh&, unsigned int)\u2019:
==> default: /home/vagrant/pcl/io/src/auto_io.cpp:155: error: \u2018struct std::basic_string<char, std::char_traits<char>, std::allocator<char> >\u2019 has no member named \u2018string\u2019
==> default: make[2]: *** [io/CMakeFiles/pcl_io.dir/src/auto_io.cpp.o] Error 1
==> default: make[1]: *** [io/CMakeFiles/pcl_io.dir/all] Error 2

Full configure+build log: https://gist.githubusercontent.com/nicoulaj/038016c02bffd0948610c647152b2f00/raw/589f856fe84535495b5c3d2bf07c0a000fde0b7d/pcl.log

Possible Solution

?

Code to Reproduce

Here is a virtual machine environment that reproduces the issue (see README):
https://gist.github.com/nicoulaj/497b704de7c0f91631a30dcb08b36e24

Context

Get a working build of PCL on CentOS 6 including the surface_on_nurbs module.

@jspricke
Copy link
Member

jspricke commented Dec 2, 2016

I tested this and CentOS 6 provides Boost 1.41 which is really old. I would propose to use a newer Boost version.

@nicoulaj
Copy link
Author

nicoulaj commented Dec 3, 2016

Using Boost 1.48 from EPEL repository (updated build script: https://gist.github.com/nicoulaj/497b704de7c0f91631a30dcb08b36e24#file-setup-sh), I now get this error:

==> default: Linking CXX executable ../../../bin/pcl_ply2ply
==> default: CMakeFiles/pcl_ply2ply.dir/ply2ply.cpp.o: In function `__static_initialization_and_destruction_0':
==> default: /usr/include/boost148/boost/system/error_code.hpp:214: undefined reference to `boost::system::generic_category()'
==> default: /usr/include/boost148/boost/system/error_code.hpp:215: undefined reference to `boost::system::generic_category()'
==> default: /usr/include/boost148/boost/system/error_code.hpp:216: undefined reference to `boost::system::system_category()'
==> default: collect2: ld returned 1 exit status
==> default: make[2]: *** [bin/pcl_ply2ply] Error 1
==> default: make[1]: *** [io/tools/ply/CMakeFiles/pcl_ply2ply.dir/all] Error 2
==> default: make: *** [all] Error 2

May be -lboost_system is missing somewhere ?

@SergioRAgostinho
Copy link
Member

You can use make VERBOSE=1 to check what is passed in to compilation command.

@kunaltyagi
Copy link
Member

Closing due to inactivity. Please reopen if needed

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

No branches or pull requests

5 participants