cmpute / pcl.py

Templated python inferface for Point Cloud Library (PCL) based on Cython
BSD 3-Clause "New" or "Revised" License
71 stars 15 forks source link

Install failed, Cannot assign type 'shared_ptr[const PCLPointCloud2]' to 'PCLPointCloud2ConstPtr' #10

Closed PonyPC closed 3 years ago

PonyPC commented 4 years ago

With PCL 1.8 installed, system is jetson nano. Also tried in Ubuntu 18.06 x86_64.

    [ 16%] Linking CXX shared module PointField.cpython-36m-aarch64-linux-gnu.so
    [ 16%] Built target PointField
    [ 22%] Generating CXX source pcl/PointCloud.cxx
    Scanning dependencies of target PointCloud
    [ 27%] Building CXX object pcl/CMakeFiles/PointCloud.dir/PointCloud.cxx.o
    In file included from /usr/include/python3.6m/numpy/ndarraytypes.h:1809:0,
                     from /usr/include/python3.6m/numpy/ndarrayobject.h:18,
                     from /usr/include/python3.6m/numpy/arrayobject.h:4,
                     from /tmp/pip-build-5zyu__f7/pcl-py/_skbuild/linux-aarch64-3.6/cmake-build/pcl/PointCloud.cxx:507:
    /usr/include/python3.6m/numpy/npy_1_7_deprecated_api.h:15:2: warning: #warning "Using deprecated NumPy API, disable it by " "#defining NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION" [-Wcpp]
     #warning "Using deprecated NumPy API, disable it by " \
      ^~~~~~~
    [ 33%] Linking CXX shared module PointCloud.cpython-36m-aarch64-linux-gnu.so
    [ 33%] Built target PointCloud
    [ 38%] Generating CXX source pcl/common/PCLBase.cxx

    Error compiling Cython file:
    ------------------------------------------------------------
    ...
        property InputCloud:
            def __get__(self):
                return self._input
            def __set__(self, PointCloud inputc):
                self._input = inputc
                self._ptr.get().setInputCloud(inputc.csptr())
                                                         ^
    ------------------------------------------------------------

    /tmp/pip-build-5zyu__f7/pcl-py/pcl/common/PCLBase.pyx:15:54: Cannot assign type 'shared_ptr[const PCLPointCloud2]' to 'PCLPointCloud2ConstPtr'
    pcl/common/CMakeFiles/PCLBase.dir/build.make:62: recipe for target 'pcl/common/PCLBase.cxx' failed
    make[2]: *** [pcl/common/PCLBase.cxx] Error 1
    make[2]: *** Deleting file 'pcl/common/PCLBase.cxx'
    CMakeFiles/Makefile2:190: recipe for target 'pcl/common/CMakeFiles/PCLBase.dir/all' failed
    make[1]: *** [pcl/common/CMakeFiles/PCLBase.dir/all] Error 2
    Makefile:129: recipe for target 'all' failed
    make: *** [all] Error 2
    Traceback (most recent call last):
      File "/usr/local/lib/python3.6/dist-packages/skbuild/setuptools_wrap.py", line 589, in setup
        cmkr.make(make_args, env=env)
      File "/usr/local/lib/python3.6/dist-packages/skbuild/cmaker.py", line 507, in make
        os.path.abspath(CMAKE_BUILD_DIR())))

    An error occurred while building with CMake.
      Command:
        cmake --build . --target install --config Release --
      Source directory:
        /tmp/pip-build-5zyu__f7/pcl-py
      Working directory:
        /tmp/pip-build-5zyu__f7/pcl-py/_skbuild/linux-aarch64-3.6/cmake-build
    Please see CMake's output for more information.

    ----------------------------------------
Command "/usr/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-5zyu__f7/pcl-py/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-g_cur7d1-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-build-5zyu__f7/pcl-py/
cmpute commented 3 years ago

Please try to upgrade your Cython version

cmpute commented 3 years ago

Sorry for the late reply

cmpute commented 3 years ago

If you still meet the problem, feel free to reopen the issue :)