Thread overview | |||||||
---|---|---|---|---|---|---|---|
|
August 22, 2012 Link against MinGW libraries | ||||
---|---|---|---|---|
| ||||
There's got to be a way to link against libraries generated by MinGW, right? I'm using CMake to create a very simple 1 method library. If I tell D to link against the .lib (simple ar archive), it complains that it's an invalid library. If I tell D to link against the .dll, it complains that there is no .lib. I seem to remember thinking that Microsoft tools create a .dll and a .lib for development libraries, and you link against the .lib but run against the .dll. I don't know how to make MinGW (or cmake for that matter) generate both the .dll and .lib. I seem to remember that other projects I've built with the Visual Studio compiler, I get .lib and .dll files for my shared libraries, and those seem to work. Any help would be appreciated. |
August 22, 2012 Re: Link against MinGW libraries | ||||
---|---|---|---|---|
| ||||
Posted in reply to Kai Meyer | On Wednesday, 22 August 2012 at 14:56:40 UTC, Kai Meyer wrote:
> There's got to be a way to link against libraries generated by MinGW, right? I'm using CMake to create a very simple 1 method library. If I tell D to link against the .lib (simple ar archive), it complains that it's an invalid library. If I tell D to link against the .dll, it complains that there is no .lib.
>
> I seem to remember thinking that Microsoft tools create a .dll and a .lib for development libraries, and you link against the .lib but run against the .dll. I don't know how to make MinGW (or cmake for that matter) generate both the .dll and .lib. I seem to remember that other projects I've built with the Visual Studio compiler, I get .lib and .dll files for my shared libraries, and those seem to work.
>
> Any help would be appreciated.
Which D compiler are you using?
|
August 23, 2012 Re: Link against MinGW libraries | ||||
---|---|---|---|---|
| ||||
Posted in reply to Kai Meyer | On 8/22/2012 11:56 PM, Kai Meyer wrote: > There's got to be a way to link against libraries generated by MinGW, > right? I'm using CMake to create a very simple 1 method library. If I > tell D to link against the .lib (simple ar archive), it complains that > it's an invalid library. If I tell D to link against the .dll, it > complains that there is no .lib. > > I seem to remember thinking that Microsoft tools create a .dll and a > .lib for development libraries, and you link against the .lib but run > against the .dll. I don't know how to make MinGW (or cmake for that > matter) generate both the .dll and .lib. I seem to remember that other > projects I've built with the Visual Studio compiler, I get .lib and .dll > files for my shared libraries, and those seem to work. > > Any help would be appreciated. The issue is the object file format that the MinGW toolchain uses. It's different from that used by the DMD linker (assuming you are using DMD). What you should do here is download the basic utilities package from the Digital Mars site [1] and use the implib tool on your DLL. This will create a link library in a format the DMD linker understands. Link with it and you should be able to use your DLL. [1] http://www.digitalmars.com/download/freecompiler.html |
August 24, 2012 Re: Link against MinGW libraries | ||||
---|---|---|---|---|
| ||||
Posted in reply to Kai Meyer | If I remember it correctly, you should write a .def file and compile it with dlltool or something like that. It will create the import library. |
Copyright © 1999-2021 by the D Language Foundation