Skip to content

cannot build version 1.6 on ubuntu 22.04 #566

@julienlau

Description

@julienlau

Hi I recently switched to Ubuntu 22.04 LTS and I cannot build PotreeConverter 1.6 anymore :
Does someone how to deal with it ?

[jlu@jlu-x-m16]> cmake -DCMAKE_BUILD_TYPE=Release -DLASZIP_INCLUDE_DIRS=/opt/laszip_for_potree1/include/ \
    -DLASZIP_LIBRARY=/opt/laszip_for_potree1/lib/liblaszip.so \
    -DCMAKE_LIBRARY_PATH=/usr/local/lib \
    -DCMAKE_INCLUDE_PATH=/usr/local/include \
    .. && \
    make -j$(nproc) all
CMake Deprecation Warning at CMakeLists.txt:1 (cmake_minimum_required):
  Compatibility with CMake < 2.8.12 will be removed from a future version of
  CMake.

  Update the VERSION argument <min> value or use a ...<max> suffix to tell
  CMake that the project does not need compatibility with older versions.


-- The C compiler identification is GNU 11.2.0
-- The CXX compiler identification is GNU 11.2.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring done
-- Generating done
CMake Warning:
  Manually-specified variables were not used by the project:

    CMAKE_INCLUDE_PATH
    CMAKE_LIBRARY_PATH


-- Build files have been written to: /opt/PotreeConverter-1.6/build
[jlu@jlu-x-m16]> cmake -DCMAKE_BUILD_TYPE=Release -DLASZIP_INCLUDE_DIRS=/opt/laszip_for_potree1/include/ \
    -DLASZIP_LIBRARY=/opt/laszip_for_potree1/lib/liblaszip.so \
    -DCMAKE_LIBRARY_PATH=/usr/local/lib \
    -DCMAKE_INCLUDE_PATH=/usr/local/include \
    .. && \
    make -j$(nproc) all
CMake Deprecation Warning at CMakeLists.txt:1 (cmake_minimum_required):
  Compatibility with CMake < 2.8.12 will be removed from a future version of
  CMake.

  Update the VERSION argument <min> value or use a ...<max> suffix to tell
  CMake that the project does not need compatibility with older versions.


-- The C compiler identification is GNU 11.2.0
-- The CXX compiler identification is GNU 11.2.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring done
-- Generating done
CMake Warning:
  Manually-specified variables were not used by the project:

    CMAKE_INCLUDE_PATH
    CMAKE_LIBRARY_PATH


-- Build files have been written to: /opt/PotreeConverter-1.6/build
[  8%] Building CXX object PotreeConverter/CMakeFiles/PotreeConverter.dir/src/BINPointReader.cpp.o
[ 16%] Building CXX object PotreeConverter/CMakeFiles/PotreeConverter.dir/src/LASPointWriter.cpp.o
[ 25%] Building CXX object PotreeConverter/CMakeFiles/PotreeConverter.dir/src/PTXPointReader.cpp.o
[ 33%] Building CXX object PotreeConverter/CMakeFiles/PotreeConverter.dir/src/GridCell.cpp.o
[ 50%] Building CXX object PotreeConverter/CMakeFiles/PotreeConverter.dir/src/PointAttributes.cpp.o
[ 50%] Building CXX object PotreeConverter/CMakeFiles/PotreeConverter.dir/src/LASPointReader.cpp.o
[ 58%] Building CXX object PotreeConverter/CMakeFiles/PotreeConverter.dir/src/main.cpp.o
[ 66%] Building CXX object PotreeConverter/CMakeFiles/PotreeConverter.dir/src/PotreeConverter.cpp.o
[ 75%] Building CXX object PotreeConverter/CMakeFiles/PotreeConverter.dir/src/PotreeWriter.cpp.o
[ 91%] Building CXX object PotreeConverter/CMakeFiles/PotreeConverter.dir/src/SparseGrid.cpp.o
[ 91%] Building CXX object PotreeConverter/CMakeFiles/PotreeConverter.dir/src/stuff.cpp.o
In file included from /opt/PotreeConverter-1.6/PotreeConverter/include/SparseGrid.h:6,
                 from /opt/PotreeConverter-1.6/PotreeConverter/src/SparseGrid.cpp:5:
/opt/PotreeConverter-1.6/PotreeConverter/include/AABB.h: In constructor ‘Potree::AABB::AABB()’:
/opt/PotreeConverter-1.6/PotreeConverter/include/AABB.h:26:44: error: ‘numeric_limits’ is not a member of ‘std’
   26 |                 min = Vector3<double>(std::numeric_limits<float>::max());
      |                                            ^~~~~~~~~~~~~~
/opt/PotreeConverter-1.6/PotreeConverter/include/AABB.h:26:38: error: expected primary-expression before ‘(’ token
   26 |                 min = Vector3<double>(std::numeric_limits<float>::max());
      |                                      ^
/opt/PotreeConverter-1.6/PotreeConverter/include/AABB.h:26:44: error: ‘numeric_limits’ is not a member of ‘std’
   26 |                 min = Vector3<double>(std::numeric_limits<float>::max());
      |                                            ^~~~~~~~~~~~~~
/opt/PotreeConverter-1.6/PotreeConverter/include/AABB.h:26:59: error: expected primary-expression before ‘float’
   26 |                 min = Vector3<double>(std::numeric_limits<float>::max());
      |                                                           ^~~~~
/opt/PotreeConverter-1.6/PotreeConverter/include/AABB.h:27:45: error: ‘numeric_limits’ is not a member of ‘std’
   27 |                 max = Vector3<double>(-std::numeric_limits<float>::max());
      |                                             ^~~~~~~~~~~~~~
/opt/PotreeConverter-1.6/PotreeConverter/include/AABB.h:27:38: error: expected primary-expression before ‘(’ token
   27 |                 max = Vector3<double>(-std::numeric_limits<float>::max());
      |                                      ^
/opt/PotreeConverter-1.6/PotreeConverter/include/AABB.h:27:45: error: ‘numeric_limits’ is not a member of ‘std’
   27 |                 max = Vector3<double>(-std::numeric_limits<float>::max());
      |                                             ^~~~~~~~~~~~~~
/opt/PotreeConverter-1.6/PotreeConverter/include/AABB.h:27:60: error: expected primary-expression before ‘float’
   27 |                 max = Vector3<double>(-std::numeric_limits<float>::max());
      |                                                            ^~~~~
/opt/PotreeConverter-1.6/PotreeConverter/include/AABB.h:28:45: error: ‘numeric_limits’ is not a member of ‘std’
   28 |                 size = Vector3<double>(std::numeric_limits<float>::max());
      |                                             ^~~~~~~~~~~~~~
/opt/PotreeConverter-1.6/PotreeConverter/include/AABB.h:28:39: error: expected primary-expression before ‘(’ token
   28 |                 size = Vector3<double>(std::numeric_limits<float>::max());
      |                                       ^
/opt/PotreeConverter-1.6/PotreeConverter/include/AABB.h:28:45: error: ‘numeric_limits’ is not a member of ‘std’
   28 |                 size = Vector3<double>(std::numeric_limits<float>::max());
      |                                             ^~~~~~~~~~~~~~
/opt/PotreeConverter-1.6/PotreeConverter/include/AABB.h:28:60: error: expected primary-expression before ‘float’
   28 |                 size = Vector3<double>(std::numeric_limits<float>::max());
      |                                                            ^~~~~
In file included from /opt/PotreeConverter-1.6/PotreeConverter/include/SparseGrid.h:6,
                 from /opt/PotreeConverter-1.6/PotreeConverter/src/GridCell.cpp:3:
/opt/PotreeConverter-1.6/PotreeConverter/include/AABB.h: In constructor ‘Potree::AABB::AABB()’:
/opt/PotreeConverter-1.6/PotreeConverter/include/AABB.h:26:44: error: ‘numeric_limits’ is not a member of ‘std’
   26 |                 min = Vector3<double>(std::numeric_limits<float>::max());
      |                                            ^~~~~~~~~~~~~~
/opt/PotreeConverter-1.6/PotreeConverter/include/AABB.h:26:38: error: expected primary-expression before ‘(’ token
   26 |                 min = Vector3<double>(std::numeric_limits<float>::max());
      |                                      ^
/opt/PotreeConverter-1.6/PotreeConverter/include/AABB.h:26:44: error: ‘numeric_limits’ is not a member of ‘std’
   26 |                 min = Vector3<double>(std::numeric_limits<float>::max());
      |                                            ^~~~~~~~~~~~~~
/opt/PotreeConverter-1.6/PotreeConverter/include/AABB.h:26:59: error: expected primary-expression before ‘float’
   26 |                 min = Vector3<double>(std::numeric_limits<float>::max());
      |                                                           ^~~~~
/opt/PotreeConverter-1.6/PotreeConverter/include/AABB.h:27:45: error: ‘numeric_limits’ is not a member of ‘std’
   27 |                 max = Vector3<double>(-std::numeric_limits<float>::max());
      |                                             ^~~~~~~~~~~~~~
/opt/PotreeConverter-1.6/PotreeConverter/include/AABB.h:27:38: error: expected primary-expression before ‘(’ token
   27 |                 max = Vector3<double>(-std::numeric_limits<float>::max());
      |                                      ^
/opt/PotreeConverter-1.6/PotreeConverter/include/AABB.h:27:45: error: ‘numeric_limits’ is not a member of ‘std’
   27 |                 max = Vector3<double>(-std::numeric_limits<float>::max());
      |                                             ^~~~~~~~~~~~~~
/opt/PotreeConverter-1.6/PotreeConverter/include/AABB.h:27:60: error: expected primary-expression before ‘float’
   27 |                 max = Vector3<double>(-std::numeric_limits<float>::max());
      |                                                            ^~~~~
/opt/PotreeConverter-1.6/PotreeConverter/include/AABB.h:28:45: error: ‘numeric_limits’ is not a member of ‘std’
   28 |                 size = Vector3<double>(std::numeric_limits<float>::max());
      |                                             ^~~~~~~~~~~~~~
/opt/PotreeConverter-1.6/PotreeConverter/include/AABB.h:28:39: error: expected primary-expression before ‘(’ token
   28 |                 size = Vector3<double>(std::numeric_limits<float>::max());
      |                                       ^
/opt/PotreeConverter-1.6/PotreeConverter/include/AABB.h:28:45: error: ‘numeric_limits’ is not a member of ‘std’
   28 |                 size = Vector3<double>(std::numeric_limits<float>::max());
      |                                             ^~~~~~~~~~~~~~
/opt/PotreeConverter-1.6/PotreeConverter/include/AABB.h:28:60: error: expected primary-expression before ‘float’
   28 |                 size = Vector3<double>(std::numeric_limits<float>::max());
      |                                                            ^~~~~
In file included from /opt/PotreeConverter-1.6/PotreeConverter/include/LASPointWriter.hpp:13,
                 from /opt/PotreeConverter-1.6/PotreeConverter/src/LASPointWriter.cpp:4:
/opt/PotreeConverter-1.6/PotreeConverter/include/AABB.h: In constructor ‘Potree::AABB::AABB()’:
/opt/PotreeConverter-1.6/PotreeConverter/include/AABB.h:26:44: error: ‘numeric_limits’ is not a member of ‘std’
   26 |                 min = Vector3<double>(std::numeric_limits<float>::max());
      |                                            ^~~~~~~~~~~~~~
/opt/PotreeConverter-1.6/PotreeConverter/include/AABB.h:26:38: error: expected primary-expression before ‘(’ token
   26 |                 min = Vector3<double>(std::numeric_limits<float>::max());
      |                                      ^
/opt/PotreeConverter-1.6/PotreeConverter/include/AABB.h:26:44: error: ‘numeric_limits’ is not a member of ‘std’
   26 |                 min = Vector3<double>(std::numeric_limits<float>::max());
      |                                            ^~~~~~~~~~~~~~
/opt/PotreeConverter-1.6/PotreeConverter/include/AABB.h:26:59: error: expected primary-expression before ‘float’
   26 |                 min = Vector3<double>(std::numeric_limits<float>::max());
      |                                                           ^~~~~
/opt/PotreeConverter-1.6/PotreeConverter/include/AABB.h:27:45: error: ‘numeric_limits’ is not a member of ‘std’
   27 |                 max = Vector3<double>(-std::numeric_limits<float>::max());
      |                                             ^~~~~~~~~~~~~~
/opt/PotreeConverter-1.6/PotreeConverter/include/AABB.h:27:38: error: expected primary-expression before ‘(’ token
   27 |                 max = Vector3<double>(-std::numeric_limits<float>::max());
      |                                      ^
/opt/PotreeConverter-1.6/PotreeConverter/include/AABB.h:27:45: error: ‘numeric_limits’ is not a member of ‘std’
   27 |                 max = Vector3<double>(-std::numeric_limits<float>::max());
      |                                             ^~~~~~~~~~~~~~
/opt/PotreeConverter-1.6/PotreeConverter/include/AABB.h:27:60: error: expected primary-expression before ‘float’
   27 |                 max = Vector3<double>(-std::numeric_limits<float>::max());
      |                                                            ^~~~~
/opt/PotreeConverter-1.6/PotreeConverter/include/AABB.h:28:45: error: ‘numeric_limits’ is not a member of ‘std’
   28 |                 size = Vector3<double>(std::numeric_limits<float>::max());
      |                                             ^~~~~~~~~~~~~~
/opt/PotreeConverter-1.6/PotreeConverter/include/AABB.h:28:39: error: expected primary-expression before ‘(’ token
   28 |                 size = Vector3<double>(std::numeric_limits<float>::max());
      |                                       ^
/opt/PotreeConverter-1.6/PotreeConverter/include/AABB.h:28:45: error: ‘numeric_limits’ is not a member of ‘std’
   28 |                 size = Vector3<double>(std::numeric_limits<float>::max());
      |                                             ^~~~~~~~~~~~~~
/opt/PotreeConverter-1.6/PotreeConverter/include/AABB.h:28:60: error: expected primary-expression before ‘float’
   28 |                 size = Vector3<double>(std::numeric_limits<float>::max());
      |                                                            ^~~~~
make[2]: *** [PotreeConverter/CMakeFiles/PotreeConverter.dir/build.make:90: PotreeConverter/CMakeFiles/PotreeConverter.dir/src/GridCell.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: *** [PotreeConverter/CMakeFiles/PotreeConverter.dir/build.make:188: PotreeConverter/CMakeFiles/PotreeConverter.dir/src/SparseGrid.cpp.o] Error 1
make[2]: *** [PotreeConverter/CMakeFiles/PotreeConverter.dir/build.make:118: PotreeConverter/CMakeFiles/PotreeConverter.dir/src/LASPointWriter.cpp.o] Error 1

It seems a fix is here and needs to modify the source code :
onnx/onnx-tensorrt#474

I do not know if the change is backward compatible with other stdlib, but maybe the modification should be batched with
https://github.com/potree/PotreeConverter/pull/405/files
?
@seanfdnn

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions