Page 1 of 1

some DLL not found - they are called DLL.a

Posted: Tue Mar 19, 2024 6:18 pm
by amwink

I'm using CodeLite in a Win10 Enterprise environment

All my building software is in D:\usr\local; the compiler is in D:\usr\local\mingw64_gcc-13.2.0_llvm-17.0.6\bin, Codelite is in D:\usr\local\codelite-17.8.0 and wxWidgets was downloaded to D:\usr\local\wxWidgets -- but then installed into D:\usr\local\wxWidgets\lib, include, etc.

I have build some DLLs with the mingw compiler above, which were installed into D:\usr\local\lib. To build my executable I use the appropriate link options and library path in the project's 'Global Settings'. To run the executable I have speciefied the environment variable PATH in CodeLite (the middle one is for wxWidgets):

Code: Select all

    PATH=D:/usr/local/mingw64_gcc-13.2.0_llvm-17.0.6/bin;$(PATH)
    PATH=D:/usr/local/lib/gcc_x64_dll;$(PATH)
    PATH=D:/usr/local/lib;$(PATH)

For running the executable outside CodeLite I have added these directories to the Path variable in the 'Advanced system settings' -> 'Environment Variables' section of the Control Panel.

However when I run the executable in CodeLite, I get the error

Code: Select all

==== Program exited with exit code: 3221225781 ====

and when I run it through the debugger, I get a dialog that says

Code: Select all

Debugger exited with the following error string:
"During startup program exited with code 0xc0000135."

Both codes are a sign that one or more DLL cannot be found at runtime.

When I run the executable outside of CodeLite (from the build-Debug\bin directory) I get a dialog that says the name of one of the DLLs cannot be found. I think that is the first, and that actually none of them can be found.

BUT

It then turns out that although the libraries I buitlt with CodeLite and wxWidgets that I built with CMake have extension .dll, where the orther libraries (such as OpenBLAS) that I also built with CMake, have extension .dll.a. One of those is in the error message outside CodeLite.

I have never seen these .dll.a files before in my life, is it not enough to just put them in the path? Would it be possible to build executables in CodeLite that accept .dll.a files at runtime?

Preferably I would just want a .dll file libopenblas.dll instead of libopenblas.dll.a but that seems to be set somewhere iin its build settings?


Re: some DLL not found - they are called DLL.a

Posted: Tue Mar 19, 2024 7:48 pm
by amwink

Sorry, never mind. I was looking for DLLs in the lib directory, just found them in the bin directory.
(in my defence, the 2nd L in DLL is for 'library')