Additional Topics > External Development Guide > External Development Overview > Compilation and Linking Details

# Compilation and Linking Details

Once you have written your code, you need to compile it and link it into IDL before it can be run. Information on how to do this is available in the various subdirectories of the external subdirectory of the IDL distribution.

In addition:

- The IDL MAKE_DLL procedure, provides a portable high level mechanism for building sharable libraries from code written in the C programming language.
- The IDL !MAKE_DLL system variable is used by the MAKE_DLL procedure to construct C compiler and linker commands appropriate for the target platform. If you do not use MAKE_DLL to compile and link your code, you may find the value of !MAKE_DLL.CC and !MAKE_DLL.LD helpful in determining which options to specify to your compiler and linker, in conjunction with your system and compiler documentation. For the C language, the options in !MAKE_DLL should be very close to what you need. For other languages, the !MAKE_DLL options should still be helpful in determining which options to use, as on most systems, all the language compilers accept similar options.
- The UNIX IDL distribution has a `bin` subdirectory that contains platform specific directories that in turn hold the actual IDL binary and related files. Included with these files is a `Makefile` that shows how to build IDL from the shareable libraries present in the directory. The link line in this`makefile` should be used as a starting point when linking your code with Callable IDL— simply omit main.o and include your own object files, containing your own main program.
- A more detailed description of the issues involved in compiling and linking your code can be found under “Compiling Programs That Call IDL”.