[BUG]: pybind11 failed to build due to ImportError: DLL load failed while importing test_cmake_build on windows with MSVC ASAN
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 18k
- Forks
- 2.3k
- Avg merge
- 5d 17h
- Merged PRs (30d)
- 10
Description
Required prerequisites
- Make sure you've read the documentation. Your issue may be addressed there.
- Search the issue tracker and Discussions to verify that this hasn't already been reported. +1 or comment there if it has.
- 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:
- git clone https://github.com/pybind/pybind11 C:\gitP\pybind\pybind11
- Open a VS2022 x64 cmd
- set CL= /fsanitize=address /GS- /wd5072 & set LINK= /InferASanLibs /incremental:no /debug
cd C:\gitP\pybind\pybind11 && mkdir build_amd64 && cd build_amd64 - python.exe -m pip install -r tests/requirements.txt
- cmake -G "Visual Studio 17 2022" -A x64 -DCMAKE_SYSTEM_VERSION=10.0.22621.0 -DPython_EXECUTABLE=C:\Python311\python.exe ..
- msbuild /m /p:Platform=x64 /p:Configuration=Release pybind11.sln /t:Rebuild
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
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with tests/test_cmake_build/test.py and tests/test_cmake_build/subdirectory_target/CMakeLists.txt, then reproduce the Windows MSVC ASAN build using the reported CMake and MSBuild commands. The work is done when the test_cmake_build module imports successfully and the test_build_subdirectory_target build completes without the DLL-load or MSB8066 errors.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cmake, cpp, python
- Domain
- build-system, testing
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100