dlltool - Linux


dlltool is a utility for converting shared libraries and object files between different platforms and formats. It supports a wide range of popular formats, including ELF, PE, and Mach-O.


dlltool [options] <input-file> [<output-file>]


  • -arch : Specify the architecture of the target library.
  • -exports : Generate a header file containing the exported symbols.
  • -d : Define a new symbol.
  • -m : Override the default module name.
  • -o : Specify the output file path.
  • -v: Enable verbose output.
  • –help: Display help and usage information.


Convert an ELF library to PE format:

dlltool -arch pe mylibrary.so mylibrary.dll

Generate a header file with exported symbols:

dlltool -exports mylibrary.h mylibrary.so

Define a new symbol in a library:

dlltool -d MY_NEW_SYMBOL=42 mylibrary.o

Common Issues

  • Error: Unknown symbol: Ensure that all exported symbols are defined in the input file.
  • Error: Invalid file format: Verify that the input file is a valid shared library or object file in a supported format.
  • Error: Permission denied: Ensure that the user has write permissions to the output file path.


  • objcopy: Convert object files between different formats.
  • ld: Link object files and libraries to create executable or shared objects.
  • nm: Display symbols contained in object files or libraries.

Related Commands

  • ar: Manage static libraries.
  • ranlib: Create an index for a static library.
  • libtool: A portable library creation and manipulation tool.