pybind11 icon indicating copy to clipboard operation
pybind11 copied to clipboard

[BUG]: pybind11 failed to build due to ImportError: DLL load failed while importing test_cmake_build on windows with MSVC ASAN

Open spacelg opened this issue 7 months ago • 0 comments

Required prerequisites

  • [X] Make sure you've read the documentation. Your issue may be addressed there.
  • [X] Search the issue tracker and Discussions to verify that this hasn't already been reported. +1 or comment there if it has.
  • [X] Consider asking first in the Gitter chat room or in a Discussion.

What version (or hash if on master) of pybind11 are you using?

19a6b9f

Problem description

Hi,

pybind11 failed to build due to ImportError: DLL load failed while importing test_cmake_build on windows with MSVC ASAN. It can be reproduced on commit https://github.com/pybind/pybind11/commit/19a6b9f4efb569129c878b7f8db09132248fbaa1 on master branch. Could you please help look at this issue? Thanks in advance.

Steps to reproduce the behavior:

  1. git clone https://github.com/pybind/pybind11 C:\gitP\pybind\pybind11
  2. Open a VS2022 x64 cmd
  3. set CL= /fsanitize=address /GS- /wd5072 & set LINK= /InferASanLibs /incremental:no /debug cd C:\gitP\pybind\pybind11 && mkdir build_amd64 && cd build_amd64
  4. python.exe -m pip install -r tests/requirements.txt
  5. cmake -G "Visual Studio 17 2022" -A x64 -DCMAKE_SYSTEM_VERSION=10.0.22621.0 -DPython_EXECUTABLE=C:\Python311\python.exe ..
  6. msbuild /m /p:Platform=x64 /p:Configuration=Release pybind11.sln /t:Rebuild

Build_ASAN.log

Error Message: 17>CustomBuild: Internal cmake changing into directory: C:/gitP/pybind/pybind11/build_amd64/tests/test_cmake_build/subdirectory_target ======== CMake output ====== Selecting Windows SDK version 10.0.22621.0 to target Windows 10.0.20348. The CXX compiler identification is MSVC 19.41.34102.96 Detecting CXX compiler ABI info Detecting CXX compiler ABI info - done Check for working CXX compiler: C:/Program Files/Microsoft Visual Studio/2022/Enterprise/VC/Tools/MSVC/14.40.33807/bin/Hostx64/x64/cl.exe - skipped Detecting CXX compile features Detecting CXX compile features - done pybind11 v2.13.0 dev1 Found Python: C:\Python311\python.exe (found suitable version "3.11.4", minimum required is "3.6") found components: Interpreter Development.Module Development.Embed Performing Test HAS_MSVC_GL_LTCG Performing Test HAS_MSVC_GL_LTCG - Success Configuring done (3.6s) Generating done (0.0s) Build files have been written to: C:/gitP/pybind/pybind11/build_amd64/tests/test_cmake_build/subdirectory_target ======== End CMake output ====== Change Dir: 'C:/gitP/pybind/pybind11/build_amd64/tests/test_cmake_build/subdirectory_target'

     Run Build Command(s): "C:/Program Files/Microsoft Visual Studio/2022/Enterprise/MSBuild/Current/Bin/amd64/MSBuild.exe" check_subdirectory_target.vcxproj /p:Configuration=Release /p:Platform=x64 /p:VisualStudioVersion=17.0 /v:m
     MSBuild version 17.10.4+10fbfbf2e for .NET Framework
     
       1>Checking Build System
       Building Custom Rule C:/gitP/pybind/pybind11/tests/test_cmake_build/subdirectory_target/CMakeLists.txt
17>cl : command line warning D9025: overriding '/GS' with '/GS-' [C:\gitP\pybind\pybind11\build_amd64\tests\test_cmake_build\subdirectory_target\test_subdirectory_target.vcxproj] [C:\gitP\pybind\pybind11\build_amd64\tests\test_cmake_build\test_build_subdirectory_target.vcxproj]
       main.cpp
          Creating library C:/gitP/pybind/pybind11/build_amd64/tests/test_cmake_build/subdirectory_target/Release/test_cmake_build.lib and object C:/gitP/pybind/pybind11/build_amd64/tests/test_cmake_build/subdirectory_target/Release/test_cmake_build.exp
       test_subdirectory_target.vcxproj -> C:\gitP\pybind\pybind11\build_amd64\tests\test_cmake_build\subdirectory_target\Release\test_cmake_build.cp311-win_amd64.pyd
       1>
       Traceback (most recent call last):
         File "C:\gitP\pybind\pybind11\tests\test_cmake_build\test.py", line 3, in <module>
           import test_cmake_build
       **ImportError: DLL load failed while importing test_cmake_build: The specified module could not be found.
       The system cannot find the batch label specified - VCEnd**
17>C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets(237,5): error MSB8066: Custom build for 'C:\gitP\pybind\pybind11\build_amd64\tests\test_cmake_build\subdirectory_target\CMakeFiles\ebc2369a84847dd293a43f7c55032ecd\check_subdirectory_target.rule' exited with code 1. [C:\gitP\pybind\pybind11\build_amd64\tests\test_cmake_build\subdirectory_target\check_subdirectory_target.vcxproj] [C:\gitP\pybind\pybind11\build_amd64\tests\test_cmake_build\test_build_subdirectory_target.vcxproj]
     
     The system cannot find the batch label specified - VCEnd
17>C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets(237,5): **error MSB8066: Custom build** for 'C:\gitP\pybind\pybind11\build_amd64\CMakeFiles\51bbd34823709d98a279260beab39c00\test_build_subdirectory_target.rule' exited with code 1. [C:\gitP\pybind\pybind11\build_amd64\tests\test_cmake_build\test_build_subdirectory_target.vcxproj]
17>Done Building Project "C:\gitP\pybind\pybind11\build_amd64\tests\test_cmake_build\test_build_subdirectory_target.vcxproj" (Rebuild target(s)) -- FAILED.

Steps to reproduce the behavior:

Reproducible example code

No response

Is this a regression? Put the last known working version here if it is.

Not a regression

spacelg avatar Jul 08 '24 07:07 spacelg