User Tools

Site Tools



Source development requires a series of tool. Some important (at least important for our development) are listet here:

Version Control

It is important to keep track of different versions of source code files during a software development process. Especially if multiple developer work on the same project, it is often required to view and review changes, undo possible errors, synchronize the source code file, … Tools which take care of this are called version control or revision control tools. We use git and github for our projects.

You will need to know how to do the following things with git:

  • Cloning a repository (git clone)
  • Adding files to the repository (git add)
  • Committing changes (git commit)
  • Checking the status of the reporistory (git status)
  • Pulling and pushing changes (git pull, git push)

Tutorials and Links


Source code can basically be written in any text editor. We recommend simple text editors (like gedit).


Each source code file has to be compiled using a compiler (in our case a C++ compiler. In the world of Linux, there are two main compilers: GCC and Clang.

You will need to know how to do the following things with a compiler:

  • Compile a single source code file
  • Compile multiple source code files to object files
  • Link multiple object files into an exectueable

Tutorials and Links

To avoid compiling each source code file manually, build automation tools are used. make is the most popular build automation tool in the Linux/Unix area. In addition to classic build automation tools, cmake provides a higher level abstraction and can be used to create make files or configuration for other build automation tools (like Visual Studio).

You will need to know how to do the following things with make/cmake:

  • Running a make file
  • Using a CMake config to generate a make file

Tutorials and Links


The debugger is a tool which helps a software developer finding bugs in his code. For Linux environments, the gdb can be used.

You will need to know how to do the following things with gcc:

  • What is a segmentation fault?
  • What is a backtrace?
  • Running your program in gdb (run)
  • Printing variables and values (print)
  • Creating/setting/managing breakpoints (break)
  • Flow control (continue, step, next)

Tutorials and Links

toolchain.txt · Last modified: 2014/07/03 06:32 by viennastar