Compiler Tools

A discussion of compiler tools available at Nevis.

Code checking

The cppcheck command can find problems the compiler does not detect.

A typical use might be:

cppcheck *.cxx
This will check all the .cxx files within the current directory.

A more practical example:

cppcheck --enable=style myCodeDir

This will check all the C++ files in the sub-directory myCodeDir.

Standardized compilers

If you've worked on more than one system on the Nevis Linux cluster, you may have encountered the following problem: You compile a program on a system with one version of Scientific Linux, but find that there are library incompatibilities when you try to execute the program on another version, or have problems linking with one of the ROOT or Geant4 libraries.

In general, the problem is with the library libstdc++.so, but there can be other issues as well. This problem can be particularly acute if you're preparing a job to run on our condor batch system, since there are systems with different OS versions on the farm.

To help deal with this problem, I've prepared self-contained compiler suites (with all the required libraries) on the applications server. I refer to them as the "standardized" compilers, since the compilers and the programs they produce should execute in the same way on all the Nevis systems. The available versions are accessible via the command:

module avail gcc

This is not a cure-all to the issue of mixed library versions on different systems. but it should go some way towards developing programs that will execute properly on all the systems in the batch farm.

Note that some software development environments, e.g., LArSoft, come with their own standardized compilers. Do not use the Nevis compilers with those frameworks, unless you know what you're doing.

Edit | Attach | Watch | Print version | History: r3 < r2 < r1 | Backlinks | Raw View | Raw edit | More topic actions
Topic revision: r3 - 2015-02-03 - WilliamSeligman
 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2018 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback