Programming tools

From Linux 101, The beginner's guide to all things Linux.

Jump to: navigation, search

One very powerful aspect of Linux is that its development tools are available for anyone to use. You will see these tools if you ever compile or develop some software for the Linux platform.

This article is not a complete account of how to develop on Linux. However, it does inform you of the purpose of tools, and link you in the right direction of where to find out more.

Contents

[edit] Developing the program

You can always use the standard text editors discussed in an earlier article to edit programs. In fact, many developers prefer doing so. However, in this section we will discuss some new programs for you.

Integrated Development Environments (IDEs) provide a nice GUI to code, debug, and many other important tasks to programmers.

[edit] Anjuta

Anjuta is a versatile Integrated Development Environment (IDE) for C and C++ on GNU/Linux. It has been written for GTK/GNOME and features a number of advanced programming facilities. These include project management, application wizards, an on-board interactive debugger, and a powerful source editor with source browsing and syntax highlighting.

Anjuta is an effort to marry the flexibility and power of text-based command-line tools with the ease-of-use of the GNOME graphical user interface. That is why it has been made as user-friendly as possible.

[edit] KDevelop

KDevelop is an IDE developed around KDE. If you are considering to make a KDE application, you should look at KDevelop, since that is the standard choice for many developers. It is very feature rich and has the ability to work with a great many helper developer programs.

[edit] Maintaining the program code

Program source code is often maintained through a versioning system. This allows programmers to see changes made (and who made them) compared to older code. This system also allows code to be reverted back to earlier states, in case a programmer wishes to undo the changes made.

In Linux there are two popular versioning systems. Both have a very similiar interface, so learning one will help you to learn the other.

Both programs can also be used to maintain more than source code -- any files that would need versioning support so you can see changes made can benefit from these tools.

[edit] CVS

Concurrent Versions System is the tried and true versioning system. Most programs are developed by the aid of CVS. You will not go wrong using CVS.

[edit] Subversion

Subversion is a new versioning system. It has better support for binary files than CVS does and completes many tasks faster than CVS. Because it is a fairly young project, it has not yet achieved widespread use. However, its support in the community is growing.

[edit] Creating the program's executable

The following sections contain technical information. This knowledge is best suited for programmers or those who seek to understand the development process. With the exception of make, most of these tools will never be used by the "common" Linux user.

[edit] GCC

The GNU Compiler Collection is a group of some of the most powerful and versatile compilers available to a computer. Being new to Linux, there are two commands of the GCC that you could possibly see often:

  • gcc - The GNU C Compiler
  • g++ - The GNU C++ Compiler

[edit] Make

GNU make is actually what runs the compiler for you. Program source code is usually broken down into many files. It would be a pain to compile each by hand, so make follows the Makefile script to automatically do the dirty work for you. Not only does make run the compiler but many other helper programs such as the installer, and more.

[edit] Autoconf

You will sometimes see autoconf in action. You will probably use it more often if you were to develop programs for the Linux environment. The GNU autoconf program will automatically create your configure script that you run in the package directory, hence the name.

[edit] Automake

GNU automake is another program that creates a special Makefile.in file. This file is used by your configure script to create your final Makefile, which will be used by the make program.

The following diagram outlines how the autotools are used to create the files that assist you in the process of building a program from scratch.

Diagram overview of the autotools and how they are used.

[edit] More documentation

Personal tools