Open3D
Open3D copied to clipboard
Cannot compile Debug build on Windows 11 with CUDA
Checklist
- [x] I have searched for similar issues.
- [x] For Python issues, I have tested with the latest development wheel.
- [x] I have checked the release documentation and the latest documentation (for
mainbranch).
Steps to reproduce the issue
I first cloned Open3D by:
git clone -b v0.19.0 https://github.com/isl-org/Open3D.git
cd Open3D
Then, I build Open3D (on Windws 11, with CUDA 12.8) with:
mkdir build
cd build
cmake -G "Ninja" ^
-DBUILD_CUDA_MODULE=ON ^
-DBUILD_EXAMPLES=OFF ^
-DBUILD_GUI=OFF ^
-DBUILD_LIBREALSENSE=ON ^
-DUSE_SYSTEM_LIBREALSENSE=ON ^
-DBUILD_PYTHON_MODULE=OFF ^
-DSTATIC_WINDOWS_RUNTIME=OFF ^
-DBUILD_SHARED_LIBS=OFF ^
-DCMAKE_BUILD_TYPE=Debug ^
..
cmake --build .
Error message
[611/683] Building CUDA object cpp\open3d\core\CMakeFiles\core_impl.dir\hashmap\CUDA\CreateCUDAHashBackend.cu.obj
FAILED: cpp/open3d/core/CMakeFiles/core_impl.dir/hashmap/CUDA/CreateCUDAHashBackend.cu.obj
C:\Strawberry\c\bin\ccache.exe C:\NVIDIA\CUDA\v12.8\bin\nvcc.exe -forward-unknown-to-host-compiler -DBUILD_CUDA_MODULE -DBUILD_ISPC_MODULE -DBUILD_LIBREALSENSE -DELPP_NO_DEFAULT_LOG_FILE -DFMT_HEADER_ONLY=0 -DFMT_STRING_ALIAS=1 -DFMT_USE_WINDOWS_H=0 -DGLEW_STATIC -DIPP_VERSION_INT=20211100 -DNOMINMAX -DOPEN3D_CUDA_COMPILER_ID=\"NVIDIA\" -DOPEN3D_CUDA_COMPILER_VERSION=\"12.8.93\" -DOPEN3D_CXX_COMPILER_ID=\"MSVC\" -DOPEN3D_CXX_COMPILER_VERSION=\"19.42.34440.0\" -DOPEN3D_CXX_STANDARD=\"17\" -DOPEN3D_ENABLE_DLL_EXPORTS -DOPEN3D_STATIC -DSTB_IMAGE_IMPLEMENTATION -DSTB_IMAGE_WRITE_IMPLEMENTATION -DTBB_USE_DEBUG -DTINYGLTF_IMPLEMENTATION -DTINYOBJLOADER_IMPLEMENTATION -DWINDOWS -DWITH_IPP -DZMQ_STATIC -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_SECURE_NO_DEPRECATE -D_ENABLE_EXTENDED_ALIGNED_STORAGE -D_GLIBCXX_USE_CXX11_ABI=1 -D_SCL_SECURE_NO_WARNINGS -D_SILENCE_CXX17_RESULT_OF_DEPRECATION_WARNING -D_USE_MATH_DEFINES -IC:\Users\User\libs_sources\Open3D\build\debug\cpp\open3d\core\CMakeFiles\core_impl.dir\.\ -IC:\Users\User\libs_sources\Open3D\cpp -IC:\Users\User\libs_sources\Open3D\build\debug\_deps\ext_tbb-src\src\tbb\..\..\include -isystem C:\NVIDIA\CUDA\v12.8\include -isystem C:\Users\User\libs_sources\Open3D\build\debug\assimp\include -isystem C:\Users\User\libs_sources\Open3D\build\debug\cutlass\src\ext_cutlass -isystem C:\Users\User\libs_sources\Open3D\3rdparty\dirent -isystem C:\Users\User\libs_sources\Open3D\build\debug\nanoflann\src\ext_nanoflann\include -isystem C:\Users\User\libs_sources\Open3D\build\debug\glfw\include -isystem C:\Users\User\libs_sources\Open3D\build\debug\turbojpeg\include -isystem C:\Users\User\libs_sources\Open3D\build\debug\jsoncpp\include -isystem C:\Users\User\libs_sources\Open3D\3rdparty\liblzf -isystem C:\Users\User\libs_sources\Open3D\3rdparty\tomasakeninemoeller\include -isystem C:\Users\User\libs_sources\Open3D\build\debug\curl\include -isystem C:\Users\User\libs_sources\Open3D\build\debug\boringssl\src\ext_boringssl\Debug\include -isystem C:\Users\User\libs_sources\Open3D\build\debug\libpng\include -isystem C:\Users\User\libs_sources\Open3D\build\debug\zlib\include -isystem C:\Users\User\libs_sources\Open3D\3rdparty\rply\rply -isystem C:\Users\User\libs_sources\Open3D\3rdparty\tinyfiledialogs\include -isystem C:\Users\User\libs_sources\Open3D\build\debug\tinygltf\src\ext_tinygltf -isystem C:\Users\User\libs_sources\Open3D\build\debug\tinyobjloader\src\ext_tinyobjloader -isystem C:\Users\User\libs_sources\Open3D\build\debug\_deps\ext_qhull-src\src -isystem C:\Users\User\libs_sources\Open3D\build\debug\poisson\src\ext_poisson -isystem C:\Users\User\libs_sources\Open3D\build\debug\zeromq\include -isystem C:\Users\User\libs_sources\Open3D\build\debug\zeromq\src\ext_cppzmq -isystem C:\Users\User\libs_sources\Open3D\build\debug\msgpack-c\src\ext_msgpack-c\include -isystem C:\Users\User\libs_sources\Open3D\build\debug\vtk\src\ext_vtk\include\vtk-9.1 -isystem C:\Users\User\libs_sources\Open3D\build\debug\uvatlas\include\DirectXMath -isystem C:\Users\User\libs_sources\Open3D\build\debug\uvatlas\include -isystem C:\Users\User\libs_sources\Open3D\build\debug\mkl_install\include -isystem C:\Users\User\libs_sources\Open3D\build\debug\stdgpu\include -isystem C:\Users\User\libs_sources\Open3D\build\debug\embree\include -isystem C:\Users\User\libs_sources\Open3D\build\debug\embree\src\ext_embree -isystem C:\Users\User\libs\include -isystem C:\Users\User\libs_sources\Open3D\build\debug\ipp\src\ext_ipp\Library\include -isystem C:\Users\User\libs_sources\Open3D\build\debug\eigen\src\ext_eigen -isystem C:\Users\User\libs_sources\Open3D\3rdparty\glew\include -isystem C:\Users\User\libs_sources\Open3D\build\debug\fmt\include --allow-unsupported-compiler -Xcompiler=" -Zi -Ob0 -Od /RTC1" -std=c++17 -arch=native -Xcompiler=-MDd --Werror cross-execution-space-call,deprecated-declarations --Werror all-warnings --Werror ext-lambda-captures-this --expt-relaxed-constexpr --diag-suppress 2809 -Xcompiler /W4,/WX,/Wv:18,/wd4201,/wd4310,/wd4505,/wd4127,/wd4146,/wd4189,/wd4324,/wd4706,/wd4100,/wd4702,/wd4244,/wd4245,/wd4267,/wd4305,/wd4819 --expt-extended-lambda -MD -MT cpp\open3d\core\CMakeFiles\core_impl.dir\hashmap\CUDA\CreateCUDAHashBackend.cu.obj -MF cpp\open3d\core\CMakeFiles\core_impl.dir\hashmap\CUDA\CreateCUDAHashBackend.cu.obj.d -x cu -c C:\Users\User\libs_sources\Open3D\cpp\open3d\core\hashmap\CUDA\CreateCUDAHashBackend.cu -o cpp\open3d\core\CMakeFiles\core_impl.dir\hashmap\CUDA\CreateCUDAHashBackend.cu.obj -Xcompiler=-Fdcpp\open3d\core\CMakeFiles\core_impl.dir\,-FS
C:\Users\User\libs_sources\Open3D\cpp\open3d\core\hashmap\CUDA\CreateCUDAHashBackend.cu(52): error: calling a __host__ function("std::_Iterator_base12::_Iterator_base12(const ::std::_Iterator_base12&)") from a __host__ __device__ function("std::_Iterator_base12::_Iterator_base12 [subobject]") is not allowed
C:\Users\User\libs_sources\Open3D\cpp\open3d\core\hashmap\CUDA\CreateCUDAHashBackend.cu(52): error: calling a __host__ function("std::_Iterator_base12::~_Iterator_base12()") from a __host__ __device__ function("std::_Iterator_base12::~_Iterator_base12 [subobject]") is not allowed
2 errors detected in the compilation of "C:/Users/User/libs_sources/Open3D/cpp/open3d/core/hashmap/CUDA/CreateCUDAHashBackend.cu".
CreateCUDAHashBackend.cu
Open3D, Python and System information
- Operating system: Windows 11 64-bit
- Open3D version: 0.19.0
- System architecture: x64
- Is this a remote workstation?: no
- How did you install Open3D?: build from source
- Compiler version (if built from source): MSVC 19.42.34440.0
Additional information
I've seen a similar issue, but still compilation fails with any combination of linking and runtime.
The problem exists not only in version v0.19.0, but also in the version from the main branch.