Installing libdwarf and libelf

Instructions for installing libdwarf and libelf, a ROSE software dependency.

Installing libelf

Although ROSE has its own builtin, portable ELF parser, the libelf library is a dependency of libdwarf, which is how ROSE parses DWARF debugging sections.

To install libelf, download the source code and configure it using the C compiler version corresponding to the C++ compiler used to install ROSE. After configuring, run "make install" in the "libelf" subdirectory. Do not run "make install" in the top directory because doing so will install a "dwarf.h" header file which is incompatible with the one used by libdwarf.

The libelf versions that work with libdwarf-20160613 through libdwarf-20161124 are libelf-0.133 through libelf-0.164; libdwarf-20170416 supports libelf-0.133 through libelf-169.

Installing libdwarf

To install libdwarf, download the source code and in the "libdwarf" subdirectory, run "configure" and "make". The "--enable-shared" and "--disable-nonshared" configure switches should be used.

The makefiles don't have "install" targets, so libdwarf must be installed manually. Copy to the installation prefix's "lib" directory and create a symbolic link named Also copy dwarf.h and libdwarf.h to the installation prefix's "include" directory.

Collaboration diagram for Installing libdwarf and libelf: