-
Notifications
You must be signed in to change notification settings - Fork 117
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
Windows 10: Error: A dynamic link library (DLL) initialization routine failed. #1356
Comments
Are you able to build exokit locally with We haven't published releases in a long time and many things have been fixed since the last one. |
I'll give it a go. |
I couldn't get it to build. It crashed with this error: gyp ERR! build error npm ERR! A complete log of this run can be found in: Here's the full log: |
Are the windows build tools installed? (either via the node installer checkbox, or manual install of Visual Studio 2017) |
Yup, installed them via |
Looks like the compiler is not executing. Can you try:
and
To see what the error is? |
( |
It was a bit of a mission but I got it built. I tried to run |
Additionally, if there was a build failure in the past in this directory it's probably not sufficient to just rebuild. Could you also try wiping |
You should not be running
|
I ran Building it I grabbed a fresh clone and built it. I've noticed, that during the build I'm getting the following warnings, maybe those cause some of the issues: Warning: Missing input files: Running it I'm getting a similar error as before when running internal/modules/cjs/loader.js:800 Error: A dynamic link library (DLL) initialization routine failed. node-gyp rebuilding it I've also run c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.16.27023\include\map(597): fatal error C |
It looks like there is something wrong with that checkout. Does the glob |
Only this one: |
And the command being run is simply |
Yup, that's all I'm running |
I've added an environment variable for node-gyp, as described here. Now I don't get the node-gyp errors anymore. Still getting those missing input file warnings though. Also, the build doesn't finish (no errors, just doesn't finish). The last console output is:
|
VS 2015 is not supported (our bins are linked against 2017), so adding However, |
Sorry, I've added the variable |
Actually I don't have a Also, the build did just run through, as opposed to not finishing without errors. Running |
The paths come from Line 11 in 2477abf
However, I've never seen npm getting it wrong in this manner before. |
I believe that error is simply because the actual build has not occured, so there is nothing to start. |
I've changed
to
So now instead of looking in However, when running
I'm getting this warning twice actually. And then shortly after, node-gyp crashes.
Where is node-gyp looking for That's all run on a fresh clone of the repo btw. |
I accidentally closed the issue, sorry |
Thanks for the investigation! Though I can't reproduce it, his might be a legitimate bug/interaction with Windows.
Maybe it makes a difference if we use some of the Line 46 in 2477abf
|
I've just tried it, it doesn't make a difference. The odd thing is, that the files it says it's missing in the warning, are actually there, and also in those exact locations. |
Hm, if node is complaining about files that are legitimately there, I'm running out of suggestions. There must be something weird with the filesystem or node's view of it (most likely) or this might be a bug with node (probably less likely). Does getting rid of the glob and using the manual paths (as a test) change the error? |
I think the globs are actually the problem. I just replaced one with the full file paths, and it found it. |
Could it be some camel casing? Which terminal is this being run from (e.g. cmd, bash, Powershell)? |
I've tried it in powershell and cmd. |
I don't understand why globs don't work for you, but if there are systems that simply do not allow them, I think it would be ok to use one of the hacks to get around that. For example, I found this: https://stackoverflow.com/a/15419176 |
Actually I went ahead and replaced all the globs quickly. That seemed to have fixed all missing file warnings, but one:
That one actually isn't present at that path. |
Thanks, If you have a (seemingly) successful build, could you share the build log for it? |
Where do I find the log? |
Cleaning up the dead path: #1380 |
The terminal buffer is too small so it's not the entire log. I'll try and generate a proper one though. |
Here's the full log |
Ok, that build looks clean. Now that we have the build completing, I'm thinking back to whether it could be the CPU that is the blocker ( One way to verify would be to use An one way to "fix" it might be to comment out the usage of Ffmpeg/video code in the bindings:
I think if that's the issue the non-video parts of Exokit would probably just work on that CPU. However, if this is the issue, since the main purpose of Exokit is to be a high-performance XR engine, supporting low-thermal chipsets with less instructions like |
Fair enough. I was going to use exokit to compile for standalone headsets, never planned to plug in a non-standalone HMD. I'll look into the FFMpeg stuff though. Thanks a lot for your help anyway. |
Exokit does run on several standalone headsets, but the Windows x64 build was never intended for that purpose. (I wasn't aware of such headsets) If you could provide more details, I'd love to help figure out what the Ffmpeg build requirements for it would be. |
Basically, I want to compile a WebXR web application built with AFrame and Three.js, to an Oculus Go app. The app features 360 videos and UI in form of meshes. |
I see, in that case, since Oculus mobile is supported, that wouldn't require dealing with the Windows x64 at all -- the Oculus binaries are unrelated. The build scripts are here and use a totally different system: https://github.com/exokitxr/exokit/blob/master/scripts/oculusmobile/build-android.sh (But for testing on Windows with that CPU, we would indeed need to figure out a way to remove Ffmpeg or recompile it for the instructions supported) |
That looks good, but one of the FFmpeg DLL's looks like it's not linked. It could be a wrong compiler version, or a previous build failure was not cleaned up (meaning the DLL would not be downloaded). Is this a clean build environment with no changes? |
It's a fresh clone. Any build files would only be saved to the working directory, right? I don't need to clean up any other directories? Cheers. |
Correct, Exokit should be contained to its own checkout. Does the file |
It was missing the Just for reference, here's the binding.gyp that worked for me (ignore the .txt ending): Thanks. |
Phew 😅, thanks for bearing with. If you still have those |
Describe the bug
What happened, and what did you expect to happen?
I'm getting the following Error: A dynamic link library (DLL) initialization routine failed. when running the A-Frame Painter example.
Similar issue to #608 and #924 , my CPU is newer though, from 2017. I don't have the Leap Motion SDK installed.
Steps to reproduce
Installed exokit on Windows 10 from get.exokit.org.
In CMD, ran
C:\exokit\scripts> exokit https://aframe.io/a-painter/
Got:
`C:\exokit\scripts>IF EXIST "C:\exokit\scripts..\node\node.exe" ("C:\exokit\scripts..\node\node.exe" "--experimental-worker" "C:\exokit\scripts..\src\index.js" ) ELSE (node "--experimental-worker" "C:\exokit\scripts..\src\index.js" )
internal/modules/cjs/loader.js:750
return process.dlopen(module, path.toNamespacedPath(filename));
^
Error: A dynamic link library (DLL) initialization routine failed.
\?\C:\exokit\build\Release\exokit.node
at Object.Module._extensions..node (internal/modules/cjs/loader.js:750:18)
at Module.load (internal/modules/cjs/loader.js:620:32)
at tryModuleLoad (internal/modules/cjs/loader.js:560:12)
at Function.Module._load (internal/modules/cjs/loader.js:552:3)
at Module.require (internal/modules/cjs/loader.js:657:17)
at require (internal/modules/cjs/helpers.js:22:18)
at C:\exokit\src\native-bindings.js:19:18
at Object. (C:\exokit\src\native-bindings.js:26:3)
at Module._compile (internal/modules/cjs/loader.js:721:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:732:10)`
System information:
OS: Windows 10 Home 1903
Node version: v12.2.0
Npm version: 6.9.0
Is your Exokit downloaded or built? Downloaded.
CPU: Intel Pentium Silver N5000
Cheers!
The text was updated successfully, but these errors were encountered: