Thread overview
Similiar tool like implib/dumpbin?
Nov 03, 2019
Andre Pany
Nov 03, 2019
kinke
Nov 03, 2019
Andre Pany
Nov 13, 2019
Andre Pany
Nov 14, 2019
kinke
November 03, 2019
Hi,

Is there a similar tool like MS dumpbin available to generate DLL static import libraries?
DMD contains implib, but this works only with OMF. For COFF there is MS dumpbin. But installing the whole Build Tools for just that little tool seems odd.

I saw there are different llvm tools available but I am not sure what their purpose are and how they work.

Kind regards
Andre
November 03, 2019
On Sunday, 3 November 2019 at 10:35:00 UTC, Andre Pany wrote:
> I saw there are different llvm tools available but I am not sure what their purpose are and how they work.

I haven't tried it, but llvm-dlltool seems to be what you are looking for:

> llvm-dlltool.exe --help
OVERVIEW: llvm-dlltool

USAGE: llvm-dlltool [options] file...

OPTIONS:
  -D <value> Specify the input DLL Name
  -d <value> Input .def File
  -f <value> Assembler Flags
  -k         Kill @n Symbol from export
  -l <value> Generate an import lib
  -m <value> Set target machine
  -S <value> Assembler
November 03, 2019
On Sunday, 3 November 2019 at 14:23:36 UTC, kinke wrote:
> On Sunday, 3 November 2019 at 10:35:00 UTC, Andre Pany wrote:
>> I saw there are different llvm tools available but I am not sure what their purpose are and how they work.
>
> I haven't tried it, but llvm-dlltool seems to be what you are looking for:
>
>> llvm-dlltool.exe --help
> OVERVIEW: llvm-dlltool
>
> USAGE: llvm-dlltool [options] file...
>
> OPTIONS:
>   -D <value> Specify the input DLL Name
>   -d <value> Input .def File
>   -f <value> Assembler Flags
>   -k         Kill @n Symbol from export
>   -l <value> Generate an import lib
>   -m <value> Set target machine
>   -S <value> Assembler

Thanks a lot. I will try it. If it works well this tool could be included into ldc and dmd as replacement for implib.

Kind regards
Andre
November 13, 2019
On Sunday, 3 November 2019 at 14:37:57 UTC, Andre Pany wrote:
> On Sunday, 3 November 2019 at 14:23:36 UTC, kinke wrote:
>> On Sunday, 3 November 2019 at 10:35:00 UTC, Andre Pany wrote:
>>> I saw there are different llvm tools available but I am not sure what their purpose are and how they work.
>>
>> I haven't tried it, but llvm-dlltool seems to be what you are looking for:
>>
>>> llvm-dlltool.exe --help
>> OVERVIEW: llvm-dlltool
>>
>> USAGE: llvm-dlltool [options] file...
>>
>> OPTIONS:
>>   -D <value> Specify the input DLL Name
>>   -d <value> Input .def File
>>   -f <value> Assembler Flags
>>   -k         Kill @n Symbol from export
>>   -l <value> Generate an import lib
>>   -m <value> Set target machine
>>   -S <value> Assembler
>
> Thanks a lot. I will try it. If it works well this tool could be included into ldc and dmd as replacement for implib.
>
> Kind regards
> Andre

I had the chance to test the tool llvm-dlltool.exe and it works like a charme.
You can find the executable in the tar archive here: https://msys2.duckdns.org/package/mingw-w64-x86_64-llvm?repo=mingw64

To create e.g. the import x86-64 import library for sqlite you can use this command:
llvm-dlltool.exe -D sqlite3.dll -d sqlite3.def -l sqlite3.lib -m i386:x86-64

Kind regards
André

November 14, 2019
On Wednesday, 13 November 2019 at 19:54:32 UTC, Andre Pany wrote:
> You can find the executable in the tar archive here: https://msys2.duckdns.org/package/mingw-w64-x86_64-llvm?repo=mingw64

Or in https://github.com/ldc-developers/llvm/releases/download/ldc-v9.0.0/llvm-9.0.0-windows-x64.7z, which is a 76 MB download vs. the 264 MB of the MinGW-w64 package.