CGO and exit status 3221225781

I’m experiencing issues linking libraries on Windows with CGO.

You can see some exit status 3221225781 in the log.

This error usually happen when the Windows SDK is incomplete or not installed, according to https://github.com/rust-lang/rust/issues/30229#issuecomment-339769458

It is clearly related to having issues finding a DLL.

Any idea how to fix this?

After further research, it appears that the program can’t find libwinpthread-1.dll which is supposed to be in mingw-w64 that’s already installed in Windows VMs.

Copying libwinpthread-1.dll to the go source dir fixed the bug for my users, but I’m still getting these failed tests with exit status 3221225781 on travis. Which indicates that another DLL may be missing.

1 Like

Thanks, I’ve tried depends.exe, but even on my dev env, it reports a ton of missing DLLs that I’m almost sure I don’t need. For example IESHIMS.DLL

See https://stackoverflow.com/questions/36240215/dependency-walker-missing-dlls

The output of depends.exe can be seen here https://travis-ci.org/libretro/ludo/jobs/488371873

According to https://stackoverflow.com/questions/49148568/api-ms-win-core-dlls-missing-on-windows-10#comment85301714_49148568 :

You mean you ran depends.exe ? It’s quite old and doesn’t support API sets, try github.com/lucasg/Dependencies

windows - How to check for DLL dependency? - Stack Overflow also suggests dumpbin (doesn’t check for DLL presence) and ldd (present in Travis as part of Git Bash environment).


See Linking against ncurses, no package from Chocolately yet - Environments / Windows - Travis CI Community for what is available on a Travis Windows builder.

I found what DLL is missing: OpenGL32.dll

Any idea how to get this on Travis?

2 Likes