-
Notifications
You must be signed in to change notification settings - Fork 12
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ANNOUNCEMENT: Access violation in msvcp140.dll
with GitHub Actions
#54
Comments
greglucas
added a commit
to greglucas/pyproj
that referenced
this issue
Sep 29, 2024
adang1345/delvewheel#54 Additionally, vcpkg has a download error when running with a bash shell so we need to add some extra exports as a workaround. microsoft/vcpkg#41199 (comment)
2 tasks
snowman2
pushed a commit
to pyproj4/pyproj
that referenced
this issue
Sep 29, 2024
adang1345/delvewheel#54 Additionally, vcpkg has a download error when running with a bash shell so we need to add some extra exports as a workaround. microsoft/vcpkg#41199 (comment)
adang1345
added a commit
that referenced
this issue
Oct 21, 2024
This will help find issues similar to #54
adang1345
added a commit
that referenced
this issue
Oct 21, 2024
This will help find issues similar to #54
adang1345
added a commit
that referenced
this issue
Oct 21, 2024
This will help find issues similar to #54
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
If you're building a C++ project on GitHub Actions that uses
std::mutex
, then you may encounter an access violation when using that project in adelvewheel
-repaired wheel. To fix this, add the argument--add-path C:/Windows/System32
to yourdelvewheel
invocation.In the May 2024 release of the Microsoft Visual C++ standard library, a change was made which can cause an access violation if the version of
msvcp140.dll
loaded at runtime is older than the version used at build time. Under Microsoft's C++ binary compatibility rules, the version ofmsvcp140.dll
used at runtime must be the same version as or newer than the version used at build time.delvewheel
uses thePATH
environment variable to findmsvcp140.dll
. Unfortunately, the defaultPATH
value on the GitHub Actions Windows runner causesC:\hostedtoolcache\windows\Java_Temurin-Hotspot_jdk\8.0.422-5\x64\bin\msvcp140.dll
to be found and vendored into the wheel. This version ofmsvcp140.dll
is from Visual Studio 2017 and may be too old. If your C++ project is built with Visual Studio 2022 17.10 or later, then an access violation will happen ifstd::mutex
is used and this version ofmsvcp140.dll
is vendored.By using the
--add-path C:/Windows/System32
argument, you ensure thatC:\Windows\System32\msvcp140.dll
, which is new, is earlier in the search path. To help with diagnosing similar errors in the future,delvewheel
1.8.0 now outputs a warning if it detects that a vendored version of a Microsoft Visual C++ DLL is older than the version that was used at build time.The text was updated successfully, but these errors were encountered: