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

boost 1.73.0 breaks PCLPointCloud2 due to change in location of endian header #4302

Closed
ANYMS-A opened this issue Aug 3, 2020 · 14 comments
Closed
Labels
kind: bug Type of issue module: common needs: testing Specify why not closed/merged yet

Comments

@ANYMS-A
Copy link

ANYMS-A commented Aug 3, 2020

Describe the bug
Since there is no endian.hpp file in boost/include/detail/ in boost1.73.0(installed by homebrew on MacOS)
So most of the PCL api will raise an error.

Your Environment (please complete the following information):

  • OS: [MacOS Catalina]
  • Compiler: [g++]
  • PCL Version [e.g. 1.9.1, HEAD] which is also intalled by homebrew

How should I solve this problem

@ANYMS-A ANYMS-A added kind: bug Type of issue status: triage Labels incomplete labels Aug 3, 2020
@kunaltyagi
Copy link
Member

This should be handled by brew. Else you should install PCL or boost manually.

Closing as not a bug

@hsawano
Copy link

hsawano commented Aug 6, 2020

I confirmed this problem in MacOS.
In PCLPointCloud2.h, the including location of endian.hpp in boost is written as follows.
#include <boost/detail/endian.hpp>

The actual location is written as follows.
#include <boost/endian.hpp>

However, if I changed the location, the compile cannot be completed because ENDIAN of boost is not clear.
The following error is written.
#error "unable to determine system endianness"
The error code is written in the PCLPointCloud2.h.

Is this brew issue?

@hsawano
Copy link

hsawano commented Aug 7, 2020

In the original boost source, the endian.hpp is moved.
https://www.boost.org

Therefore, PCLPointCloud2.h has bugs, right?

@kunaltyagi
Copy link
Member

PCL has already updated the header and now includes boost/predef/other/endian.h instead of boost/endian.hpp

As a result, it's upto the distributors to keep PCL patched if they don't update PCL to more recent versions.

Speaking of which, Homebrew might release 1.11 soon, so the problem should go away. 🤞

@hsawano
Copy link

hsawano commented Aug 7, 2020

Oh, it's nice answer!

@hsawano
Copy link

hsawano commented Aug 7, 2020

@kunaltyagi
Do you know when homebrew will be updated?

@hsawano
Copy link

hsawano commented Aug 7, 2020

I installed PCL from source without homebrew.
However, the same problem exists.

How can I get the patch of PCL?

@kunaltyagi kunaltyagi reopened this Aug 7, 2020
@kunaltyagi kunaltyagi changed the title PCL 1.9.1 can't be used because I use boost 1.73.0 as 3rd party support! boost 1.73.0 breaks PCLPointCloud2 due to change in location of endian header Aug 7, 2020
@kunaltyagi kunaltyagi added effort: low Rough estimate of time needed to fix/implement/solve good first issue Skills/areas of expertise needed to tackle the issue kind: todo Type of issue module: common and removed status: triage Labels incomplete labels Aug 7, 2020
@kunaltyagi
Copy link
Member

kunaltyagi commented Aug 7, 2020

I'm unable to get boost 1.73

This issue is not present on boost 1.72.

Alpine and arch are on 1.72 as such it's not possible to test this without installing boost from source.

@kunaltyagi kunaltyagi added needs: testing Specify why not closed/merged yet and removed effort: low Rough estimate of time needed to fix/implement/solve good first issue Skills/areas of expertise needed to tackle the issue kind: todo Type of issue labels Aug 7, 2020
@hsawano
Copy link

hsawano commented Aug 7, 2020

I installed PCL 1.11 and boost 1.72 from sources in MacOS.
I can compile them without errors, and sample codes are also compiled.

@SergioRAgostinho
Copy link
Member

@kunaltyagi
Do you know when homebrew will be updated?

You can track this pr Homebrew/homebrew-core#59146 to keep yourself up to date

@ANYMS-A
Copy link
Author

ANYMS-A commented Aug 7, 2020

I installed PCL 1.11 and boost 1.72 from sources in MacOS.
I can compile them without errors, and sample codes are also compiled.

cool! Could you please share the installization tutorial? Besides, I also would like to know that whether this PCL which built from source could be detected by Hombrew(by entering "brew info pcl")?

@hsawano
Copy link

hsawano commented Aug 7, 2020

@crissallan
First, PCL and boost must be uninstalled in Homebrew.

brew uninstall pcl
brew uninstall brew

After that, boost 1.72 will be download and installed from the following URL.
https://www.boost.org/users/history/version_1_72_0.html
The install commands are written as follows.

./bootstrap.sh
./b2 install -j2 --prefix=/usr/local

After installing boost, you can download PCL 1.11 from the Web.
https://github.com/PointCloudLibrary/pcl
How to the installization is written.
https://pcl-tutorials.readthedocs.io/en/latest/compiling_pcl_macosx.html
The item Building PCL.

Thank you

@mdemirst
Copy link

If you don't need to install from source, you can follow this link to install older version brew packages https://itnext.io/how-to-install-an-older-brew-package-add141e58d32

I installed PCL 1.8.1 and Boost 1.72 and had no issues

@kunaltyagi
Copy link
Member

PS: No issues with PCL 1.11 an Boost 1.72

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind: bug Type of issue module: common needs: testing Specify why not closed/merged yet
Projects
None yet
Development

No branches or pull requests

5 participants