Compile a Program in Linux

Source code is a computer program in human readable form. However, the machine cannot execute source code. The code must be compiled into machine code before it is useful. On Linux, the "make" build system is the most common one, and this how-to works for almost all Linux source code packages.

Steps

  1. Download the source code for the program or driver from the Internet or other media. It will most likely be in the form of a "tarball" and have a file extension of .tar, .tar.bz2, or .tar.gz. Sometimes a .zip file will be used instead however.
  2. Unpack the downloaded code- for .zip files use "unzip your file", for .tgz or .tar.gz use "tar -zxvf yourfile"; for .bz2 use "tar -jxvf yourfile"; or extract your files graphically.
  3. In the terminal, move into the newly extracted directory (cd dirName).
  4. Run the command "./configure" to configure the source code automatically. Arguments such as " --prefix=" can be used to control the install location. This checks that you have the right libraries and versions.
  5. Once configured, run "make" which does the actual compiling (this can take anything from a few seconds to many hours). An executable for the program will be created in the bin directory inside the source code directory.
  6. To install the program- run "make install".
  7. You have compiled and installed the program source code.



Tips

  • If the build fails for any reason, before you attempt to build again you should run "make clean" to remove all files left behind by the original build attempt. These files may make your second attempt fail because they exist.
  • On multicore processors, you may compile in a multithreaded fashion using make -j3, replacing 3 with however many threads you want to use.
  • Unless you specify a prefix, the code will automatically install in /usr.
  • You may need to be superuser.
  • You can also string these commands together. For example, ./configure && make && make install.
  • If the build fails, you will get the output of a line, a file, and the error type. If you want you can try to fix the problem. The majority of failures come from failed dependencies of the software you are installing, that is, programs or libraries that your package depends on.

Warnings

  • Compiling and replacing critical system components can cause problems if you recompile and reinstall them. Know what you are doing.
  • Compiling can take hours.
  • Some source packages don't have configure files or even make files. In this case, just type `make' at the prompt and see what happens.

Related Articles