Skip to content

Build Errors when installing python PDAL - error C2079: 'PipelineExecutor' uses undefined class 'pdal::python::PDAL_DLL' #194

@network-mapping-dev

Description

@network-mapping-dev

Hi,

I am having difficult installing python pdal.

I have installed pdal on a windows 10 machine (and its dependencies including gdal) using the OSGeo4W setup installer made available as part of QGIS. PDAL is accessible via the command line:

PS C:\Users####> pdal --version

pdal 2.9.0 (git-version: 42b180)

OSGeo4W install PDAL under C:\OSGeo4W and C:\OSGeo4W\bin has been added to the system PATH variable. My python environment is in a python venv and I am using pip as a package manager. When I install python pdal with 'pip install pdal' I get build errors. I can see that the cmake file, include and lib directories are found but I suspect the build errors occur because something else is not found? (I can see that the wheels process is locating the cmake file because if I remove C:\OSGeo4W\bin from my system PATH variable 'pip install pdal' fails to find the CMAKE file.

I have truncated the error output but included the top and bottom of the report:

PS C:\Users#####> pip install pdal
Collecting pdal
Using cached pdal-3.4.5.tar.gz (89 kB)
Installing build dependencies ... done
Getting requirements to build wheel ... done
Installing backend dependencies ... done
Preparing metadata (pyproject.toml) ... done
Requirement already satisfied: numpy>=1.22 in c:\users#####.pyenv\pyenv-win\versions\3.11.7\lib\site-packages (from pdal) (1.26.4)
Building wheels for collected packages: pdal
Building wheel for pdal (pyproject.toml) ... error
error: subprocess-exited-with-error

× Building wheel for pdal (pyproject.toml) did not run successfully.
│ exit code: 1
╰─> [961 lines of output]
WARNING: Minimum CMake version set as 'CMakeLists.txt' is less than 3.15. This is not supported by scikit-build-core; set manually or increase to avoid this warning.
WARNING: Use build.verbose instead of cmake.verbose for scikit-build-core >= 0.10
*** scikit-build-core 0.11.5 using CMake 4.0.3 (wheel)
*** Configuring CMake...
loading initial cache file build\cp311-cp311-win_amd64\CMakeInit.txt
-- Building for: Visual Studio 17 2022
-- Selecting Windows SDK version 10.0.22621.0 to target Windows 10.0.19045.
-- The C compiler identification is MSVC 19.44.35211.0
-- The CXX compiler identification is MSVC 19.44.35211.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/VC/Tools/MSVC/14.44.35207/bin/Hostx64/x64/cl.exe - 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: C:/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/VC/Tools/MSVC/14.44.35207/bin/Hostx64/x64/cl.exe - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found Python3: C:/Users/#####/.pyenv/pyenv-win/versions/3.11.7/python3.exe (found version "3.11.7") found components: Interpreter Development.Module NumPy
-- Performing Test HAS_MSVC_GL_LTCG
-- Performing Test HAS_MSVC_GL_LTCG - Success
-- Found pybind11: C:/Users/#####/AppData/Local/Temp/pip-build-env-40uadyyi/overlay/Lib/site-packages/pybind11/include (found version "2.13.6")
-- Configuring done (11.5s)
-- Generating done (0.1s)
-- Build files have been written to: C:/Users/#####/AppData/Local/Temp/pip-install-k6yymxk3/pdal_0aaad51fb0434ab791e29700054064a3/build/cp311-cp311-win_amd64
*** Building project with Visual Studio 17 2022...
MSBuild version 17.14.14+a129329f1 for .NET Framework

  C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\MSBuild\Microsoft\VC\v170\Microsoft.CppBuild.targets(548,5): warning MSB8029: The Intermediate directory or Output directory cannot reside under the Temporary directory as it could lead to issues with incremental build. [C:\Users\#####\AppData\Local\Temp\pip-install-k6yymxk3\pdal_0aaad51fb0434ab791e29700054064a3\build\cp311-cp311-win_amd64\ZERO_CHECK.vcxproj]
    1>Checking Build System
  C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\MSBuild\Microsoft\VC\v170\Microsoft.CppBuild.targets(548,5): warning MSB8029: The Intermediate directory or Output directory cannot reside under the Temporary directory as it could lead to issues with incremental build. [C:\Users\#####\AppData\Local\Temp\pip-install-k6yymxk3\pdal_0aaad51fb0434ab791e29700054064a3\build\cp311-cp311-win_amd64\libpdalpython.vcxproj]
    Building Custom Rule C:/Users/#####/AppData/Local/Temp/pip-install-k6yymxk3/pdal_0aaad51fb0434ab791e29700054064a3/CMakeLists.txt
    PyArray.cpp
    PyPipeline.cpp
    StreamableExecutor.cpp
    libpdalpython.cpp
  C:\Users\#####\AppData\Local\Temp\pip-install-k6yymxk3\pdal_0aaad51fb0434ab791e29700054064a3\src\pdal\PyPipeline.hpp(58,16): error C2079: 'PipelineExecutor' uses undefined class 'pdal::python::PDAL_DLL' [C:\Users\#####\AppData\Local\Temp\pip-install-k6yymxk3\pdal_0aaad51fb0434ab791e29700054064a3\build\cp311-cp311-win_amd64\libpdalpython.vcxproj]
    (compiling source file '../../src/pdal/StreamableExecutor.cpp')

  C:\Users\#####\AppData\Local\Temp\pip-install-k6yymxk3\pdal_0aaad51fb0434ab791e29700054064a3\src\pdal\PyPipeline.hpp(59,1): error C2059: syntax error: 'public' [C:\Users\#####\AppData\Local\Temp\pip-install-k6yymxk3\pdal_0aaad51fb0434ab791e29700054064a3\build\cp311-cp311-win_amd64\libpdalpython.vcxproj]
    (compiling source file '../../src/pdal/StreamableExecutor.cpp')

  C:\Users\#####\AppData\Local\Temp\pip-install-k6yymxk3\pdal_0aaad51fb0434ab791e29700054064a3\src\pdal\PyPipeline.hpp(61,14): error C2588: '::~PipelineExecutor': illegal global destructor [C:\Users\#####\AppData\Local\Temp\pip-install-k6yymxk3\pdal_0aaad51fb0434ab791e29700054064a3\build\cp311-cp311-win_amd64\libpdalpython.vcxproj]
    (compiling source file '../../src/pdal/StreamableExecutor.cpp')

  C:\Users\#####\AppData\Local\Temp\pip-install-k6yymxk3\pdal_0aaad51fb0434ab791e29700054064a3\src\pdal\PyPipeline.hpp(61,14): error C2575: 'PipelineExecutor': only member functions and bases can be virtual [C:\Users\#####\AppData\Local\Temp\pip-install-k6yymxk3\pdal_0aaad51fb0434ab791e29700054064a3\build\cp311-cp311-win_amd64\libpdalpython.vcxproj]
    (compiling source file '../../src/pdal/StreamableExecutor.cpp')

  C:\Users\#####\AppData\Local\Temp\pip-install-k6yymxk3\pdal_0aaad51fb0434ab791e29700054064a3\src\pdal\PyPipeline.hpp(61,14): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int [C:\Users\#####\AppData\Local\Temp\pip-install-k6yymxk3\pdal_0aaad51fb0434ab791e29700054064a3\build\cp311-cp311-win_amd64\libpdalpython.vcxproj]
    (compiling source file '../../src/pdal/StreamableExecutor.cpp')

  C:\Users\#####\AppData\Local\Temp\pip-install-k6yymxk3\pdal_0aaad51fb0434ab791e29700054064a3\src\pdal\PyPipeline.hpp(61,14): error C2365: 'pdal::python::PipelineExecutor': redefinition; previous definition was 'data variable' [C:\Users\#####\AppData\Local\Temp\pip-install-k6yymxk3\pdal_0aaad51fb0434ab791e29700054064a3\build\cp311-cp311-win_amd64\libpdalpython.vcxproj]
    (compiling source file '../../src/pdal/StreamableExecutor.cpp')
        C:\Users\#####\AppData\Local\Temp\pip-install-k6yymxk3\pdal_0aaad51fb0434ab791e29700054064a3\src\pdal\PyPipeline.hpp(58,16):
        see declaration of 'pdal::python::PipelineExecutor'

  C:\Users\#####\AppData\Local\Temp\pip-install-k6yymxk3\pdal_0aaad51fb0434ab791e29700054064a3\src\pdal\PyPipeline.hpp(66,25): error C2270: 'views': modifiers not allowed on nonmember functions [C:\Users\#####\AppData\Local\Temp\pip-install-k6yymxk3\pdal_0aaad51fb0434ab791e29700054064a3\build\cp311-cp311-win_amd64\libpdalpython.vcxproj]
    (compiling source file '../../src/pdal/StreamableExecutor.cpp')

  C:\Users\#####\AppData\Local\Temp\pip-install-k6yymxk3\pdal_0aaad51fb0434ab791e29700054064a3\src\pdal\PyPipeline.hpp(67,17): error C2270: 'getPipeline': modifiers not allowed on nonmember functions [C:\Users\#####\AppData\Local\Temp\pip-install-k6yymxk3\pdal_0aaad51fb0434ab791e29700054064a3\build\cp311-cp311-win_amd64\libpdalpython.vcxproj]
    (compiling source file '../../src/pdal/StreamableExecutor.cpp')

  C:\Users\#####\AppData\Local\Temp\pip-install-k6yymxk3\pdal_0aaad51fb0434ab791e29700054064a3\src\pdal\PyPipeline.hpp(68,17): error C2270: 'getMetadata': modifiers not allowed on nonmember functions [C:\Users\#####\AppData\Local\Temp\pip-install-k6yymxk3\pdal_0aaad51fb0434ab791e29700054064a3\build\cp311-cp311-win_amd64\libpdalpython.vcxproj]
    (compiling source file '../../src/pdal/StreamableExecutor.cpp')

  C:\Users\#####\AppData\Local\Temp\pip-install-k6yymxk3\pdal_0aaad51fb0434ab791e29700054064a3\src\pdal\PyPipeline.hpp(69,17): error C2270: 'getQuickInfo': modifiers not allowed on nonmember functions [C:\Users\#####\AppData\Local\Temp\pip-install-k6yymxk3\pdal_0aaad51fb0434ab791e29700054064a3\build\cp311-cp311-win_amd64\libpdalpython.vcxproj]
    (compiling source file '../../src/pdal/StreamableExecutor.cpp')

  C:\Users\#####\AppData\Local\Temp\pip-install-k6yymxk3\pdal_0aaad51fb0434ab791e29700054064a3\src\pdal\PyPipeline.hpp(70,17): error C2270: 'getSchema': modifiers not allowed on nonmember functions [C:\Users\#####\AppData\Local\Temp\pip-install-k6yymxk3\pdal_0aaad51fb0434ab791e29700054064a3\build\cp311-cp311-win_amd64\libpdalpython.vcxproj]
    (compiling source file '../../src/pdal/StreamableExecutor.cpp')

  C:\Users\#####\AppData\Local\Temp\pip-install-k6yymxk3\pdal_0aaad51fb0434ab791e29700054064a3\src\pdal\PyPipeline.hpp(71,17): error C2270: 'getSrsWKT2': modifiers not allowed on nonmember functions [C:\Users\#####\AppData\Local\Temp\pip-install-k6yymxk3\pdal_0aaad51fb0434ab791e29700054064a3\build\cp311-cp311-win_amd64\libpdalpython.vcxproj]
    (compiling source file '../../src/pdal/StreamableExecutor.cpp')

  C:\Users\#####\AppData\Local\Temp\pip-install-k6yymxk3\pdal_0aaad51fb0434ab791e29700054064a3\src\pdal\PyPipeline.hpp(72,28): error C2270: 'getManager': modifiers not allowed on nonmember functions [C:\Users\#####\AppData\Local\Temp\pip-install-k6yymxk3\pdal_0aaad51fb0434ab791e29700054064a3\build\cp311-cp311-win_amd64\libpdalpython.vcxproj]
    (compiling source file '../../src/pdal/StreamableExecutor.cpp')

  C:\Users\#####\AppData\Local\Temp\pip-install-k6yymxk3\pdal_0aaad51fb0434ab791e29700054064a3\src\pdal\PyPipeline.hpp(72,56): error C2065: 'm_manager': undeclared identifier [C:\Users\#####\AppData\Local\Temp\pip-install-k6yymxk3\pdal_0aaad51fb0434ab791e29700054064a3\build\cp311-cp311-win_amd64\libpdalpython.vcxproj]
    (compiling source file '../../src/pdal/StreamableExecutor.cpp')

  C:\Users\#####\AppData\Local\Temp\pip-install-k6yymxk3\pdal_0aaad51fb0434ab791e29700054064a3\src\pdal\PyArray.hpp(61,16): error C2079: 'Array' uses undefined class 'pdal::python::PDAL_DLL' [C:\Users\#####\AppData\Local\Temp\pip-install-k6yymxk3\pdal_0aaad51fb0434ab791e29700054064a3\build\cp311-cp311-win_amd64\libpdalpython.vcxproj]
    (compiling source file '../../src/pdal/PyPipeline.cpp')

  C:\Users\#####\AppData\Local\Temp\pip-install-k6yymxk3\pdal_0aaad51fb0434ab791e29700054064a3\src\pdal\PyArray.hpp(61,16): error C2079: 'Array' uses undefined class 'pdal::python::PDAL_DLL' [C:\Users\#####\AppData\Local\Temp\pip-install-k6yymxk3\pdal_0aaad51fb0434ab791e29700054064a3\build\cp311-cp311-win_amd64\libpdalpython.vcxproj]
    (compiling source file '../../src/pdal/PyArray.cpp')

  C:\Users\#####\AppData\Local\Temp\pip-install-k6yymxk3\pdal_0aaad51fb0434ab791e29700054064a3\src\pdal\PyPipeline.hpp(73,17): error C2270: 'getLog': modifiers not allowed on nonmember functions [C:\Users\#####\AppData\Local\Temp\pip-install-k6yymxk3\pdal_0aaad51fb0434ab791e29700054064a3\build\cp311-cp311-win_amd64\libpdalpython.vcxproj]
    (compiling source file '../../src/pdal/StreamableExecutor.cpp')

  C:\Users\#####\AppData\Local\Temp\pip-install-k6yymxk3\pdal_0aaad51fb0434ab791e29700054064a3\src\pdal\PyArray.hpp(63,1): error C2059: syntax error: 'public' [C:\Users\#####\AppData\Local\Temp\pip-install-k6yymxk3\pdal_0aaad51fb0434ab791e29700054064a3\build\cp311-cp311-win_amd64\libpdalpython.vcxproj]
    (compiling source file '../../src/pdal/PyPipeline.cpp')

  C:\Users\#####\AppData\Local\Temp\pip-install-k6yymxk3\pdal_0aaad51fb0434ab791e29700054064a3\src\pdal\PyPipeline.hpp(73,41): error C2065: 'm_logStream': undeclared identifier [C:\Users\#####\AppData\Local\Temp\pip-install-k6yymxk3\pdal_0aaad51fb0434ab791e29700054064a3\build\cp311-cp311-win_amd64\libpdalpython.vcxproj]
    (compiling source file '../../src/pdal/StreamableExecutor.cpp')

  C:\Users\#####\AppData\Local\Temp\pip-install-k6yymxk3\pdal_0aaad51fb0434ab791e29700054064a3\src\pdal\PyArray.hpp(63,1): error C2059: syntax error: 'public' [C:\Users\#####\AppData\Local\Temp\pip-install-k6yymxk3\pdal_0aaad51fb0434ab791e29700054064a3\build\cp311-cp311-win_amd64\libpdalpython.vcxproj]
    (compiling source file '../../src/pdal/PyArray.cpp')

  C:\Users\#####\AppData\Local\Temp\pip-install-k6yymxk3\pdal_0aaad51fb0434ab791e29700054064a3\src\pdal\PyPipeline.hpp(75,1): error C2059: syntax error: 'protected' [C:\Users\#####\AppData\Local\Temp\pip-install-k6yymxk3\pdal_0aaad51fb0434ab791e29700054064a3\build\cp311-cp311-win_amd64\libpdalpython.vcxproj]
    (compiling source file '../../src/pdal/StreamableExecutor.cpp')

  C:\Users\#####\AppData\Local\Temp\pip-install-k6yymxk3\pdal_0aaad51fb0434ab791e29700054064a3\src\pdal\PyArray.hpp(67,5): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int [C:\Users\#####\AppData\Local\Temp\pip-install-k6yymxk3\pdal_0aaad51fb0434ab791e29700054064a3\build\cp311-cp311-win_amd64\libpdalpython.vcxproj]
    (compiling source file '../../src/pdal/PyPipeline.cpp')

  C:\Users\#####\AppData\Local\Temp\pip-install-k6yymxk3\pdal_0aaad51fb0434ab791e29700054064a3\src\pdal\PyPipeline.hpp(76,32): error C2270: 'pointTable': modifiers not allowed on nonmember functions [C:\Users\#####\AppData\Local\Temp\pip-install-k6yymxk3\pdal_0aaad51fb0434ab791e29700054064a3\build\cp311-cp311-win_amd64\libpdalpython.vcxproj]
    (compiling source file '../../src/pdal/StreamableExecutor.cpp')

  C:\Users\#####\AppData\Local\Temp\pip-install-k6yymxk3\pdal_0aaad51fb0434ab791e29700054064a3\src\pdal\PyPipeline.hpp(76,60): error C2065: 'm_manager': undeclared identifier [C:\Users\#####\AppData\Local\Temp\pip-install-k6yymxk3\pdal_0aaad51fb0434ab791e29700054064a3\build\cp311-cp311-win_amd64\libpdalpython.vcxproj]
    (compiling source file '../../src/pdal/StreamableExecutor.cpp')

  C:\Users\#####\AppData\Local\Temp\pip-install-k6yymxk3\pdal_0aaad51fb0434ab791e29700054064a3\src\pdal\PyArray.hpp(67,5): error C2365: 'pdal::python::Array': redefinition; previous definition was 'data variable' [C:\Users\#####\AppData\Local\Temp\pip-install-k6yymxk3\pdal_0aaad51fb0434ab791e29700054064a3\build\cp311-cp311-win_amd64\libpdalpython.vcxproj]
    (compiling source file '../../src/pdal/PyPipeline.cpp')
        C:\Users\#####\AppData\Local\Temp\pip-install-k6yymxk3\pdal_0aaad51fb0434ab791e29700054064a3\src\pdal\PyArray.hpp(61,16):
        see declaration of 'pdal::python::Array'

......... truncated ...............

  C:\Users\#####\AppData\Local\Temp\pip-install-k6yymxk3\pdal_0aaad51fb0434ab791e29700054064a3\src\pdal\libpdalpython.cpp(276,25): error C2143: syntax error: missing ';' before '*' [C:\Users\#####\AppData\Local\Temp\pip-install-k6yymxk3\pdal_0aaad51fb0434ab791e29700054064a3\build\cp311-cp311-win_amd64\libpdalpython.vcxproj]
  C:\Users\#####\AppData\Local\Temp\pip-install-k6yymxk3\pdal_0aaad51fb0434ab791e29700054064a3\src\pdal\libpdalpython.cpp(276,25): error C1003: error count exceeds 100; stopping compilation [C:\Users\#####\AppData\Local\Temp\pip-install-k6yymxk3\pdal_0aaad51fb0434ab791e29700054064a3\build\cp311-cp311-win_amd64\libpdalpython.vcxproj]

  *** CMake build failed
  [end of output]

note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for pdal
Failed to build pdal
ERROR: Failed to build installable wheels for some pyproject.toml based projects (pdal)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions