Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why do I need ILK, PDB and EXP files?

I have downloaded some dll files and with it came also pdb, exp and ilk files. Now I need to know do I need to put them in my system file, or not and what is the purpose of each of them in the general?

like image 500
Serenity Stack Hoolder 099 Avatar asked Jun 03 '12 01:06

Serenity Stack Hoolder 099


People also ask

What is ILK file?

File used by Microsoft Visual Studio, an IDE used for developing Windows applications; contains linker data for a compiled executable file (e.g., . EXE or . DLL); enables faster project compilation and linking, especially for larger projects.

What are DLL and PDB files?

Program database (PDB) is a file format (developed by Microsoft) for storing debugging information about a program (or, commonly, program modules such as a DLL or EXE). PDB files commonly have a . pdb extension. A PDB file is typically created from source files during compilation.

What is in PDB file?

A program database file (extension . pdb) is a binary file that contains type and symbolic debugging information gathered over the course of compiling and linking the project. A PDB file is created when you compile a C/C++ program with /ZI or /Zi or a Visual Basic, Visual C#, or JScript program with the /debug option.

How do I open ilk files?

If you cannot open your ILK file correctly, try to right-click or long-press the file. Then click "Open with" and choose an application. You can also display a ILK file directly in the browser: Just drag the file onto this browser window and drop it.


2 Answers

PDB files contain debug information and are useful if you need to step through the DLL's code at any point.

ILK files are used by the linker. They are not needed unless the DLL is to be recompiled.

EXP files contain information about things exported from the DLL

like image 72
James Avatar answered Oct 04 '22 12:10

James


  • .ilk files are intermediary files created by the linker during the development cycle. .ilk files serve the purpose of incremental linking. If the linker does not find and .ilk file when trying to do incremental linking, then it will do a full linking and reproduce the .ilk file. Incremental linking is meant to speed up the linking process. You can safely delete .ilk files.

  • .exp files are for developers too. .exp files are created for .exe and .dll files that export some symbols. Their purpose is similar to .lib import libraries, but there is a subtle difference. .exp files are always created, even if the creation of the corresponding .exe or .dll fails at link time. By contrast, .lib import libraries are created only when the corresponding .exe or .dll linkage succeeds. .exp files help linking interdependent components. For example, an .exe might provide access to its common resources for its plugins by exporting some functions. The plugins also provide exports for the .exe to call. Interdependencies like this cannot be successfully linked. The .exe linkage will fail, because the import .lib for the .dll is missing. Consequently no .lib for the .exe will be created. The linkage of the .dll will fail because the import library for the .exe is missing. Export files however will be created even if linkage failed, so the .dll could link against the .exp file rather than the .lib file for successful linkage.

like image 26
Laszlo Avatar answered Oct 04 '22 12:10

Laszlo