Revision 47 as of 2020-09-02 09:44:03

Clear message

Programming

Programming language literature

On the free Ebook foundation website, you will find an overview of a bunch of programming e-books (PDF/ HTML) free of charge for almost any language in the areas of

OpenGL

Compiling OpenGL/ NVidia CUDA-based applications on Debian Linux

The Debian platform managed by ISG.EE uses the following directory layout for the OpenGL libraries and headers:

Libraries:

The /usr/lib/x86_64-linux-gnu/libGL*.so OpenGL libraries are symbolic links to the hardware-specific libraries. There is a mechanism in the starup process of each client workstation which detects the accurate OpenGL library based on the information about the graphics card and the kernel driver. The CUDA runtime libraries are found in the same directory.

Header Files:

The OpenGL headers are found under /usr/include/GL. For NVidia programming, a CUDA toolkit that should work with
the installed NVidia graphics card is installed (CUDA headers in /usr/include).

Compiling sources and linking against the NVidia libraries:

No special CFLAGS/ CXXFLAGS and LDFLAGS must be set. The required headers and libraries are all found under the
standard system paths. If you use an own OpenGL/ CUDA toolkit, e.g. installed in your home, make sure it is
compatible with the graphics driver/ hardware installed on the system. Then set CFLAGS (standard C programming,
e.g. compiling with gcc) and/ or CXXFLAGS (C++ programming, e.g. compiling with g++) and LDFLAGS as follows:

Assume you have installed the toolkit under /home/$USER/toolkit, then set the mentioned environment
variables in your Debian shell (bash, tcsh, ...) as follows, before you start compiling/ linking:

export CFLAGS="-I/home/$USER/toolkit/include"
export CXXFLAGS="$CFLAGS"
export LDFLAGS="-L/home/$USER/toolkit/lib -Wl,-rpath,/home/$USER/toolkit/lib"

$USER must of course be replaced with your ETH (login-) username.

Perl

Network Programming

Linux desktop GUI programming

Linux debugging

Unfortunately, it is difficult to write bug-free programs. A good debugger is very helpful tracking down errors. On the Debian clients managed by ISG.EE we recommend to use the Data Display Debugger (DDD). DDD supports a variety of programming languages: Ada, C, C++, Chill, Fortran, Java, Modula, Pascal, Perl, Python.

For a current list, consult the DDD manual (man ddd).

Database programming

If you want to learn about database design and programming you can get an account on our MySQL database server. Get in touch with us and let us know what your plans are. The address of our database server is remi.ee.ethz.ch where mysql runs on the default port (3306). For database configuration and setup tasks you can also make use of our phpMyAdmin setup.


CategoryLXSW