Programming tools
From Linux 101, The beginner's guide to all things Linux.
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 Compilerg++- 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.
[edit] More documentation
- The Autotools book for autoconf, automake, and the like
- The Subversion book


