User Tools

Site Tools


howto:compiling_tips_n_tricks

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
howto:compiling_tips_n_tricks [2013/07/19 11:00]
kevin [Example]
howto:compiling_tips_n_tricks [2013/07/25 11:42]
kevin [Compilers]
Line 9: Line 9:
 > Many people write the first and last as C/​C++. ​ That's misleading. ​ C and C++ are separate languages. ​ Confusing them is responsible for many problems. > Many people write the first and last as C/​C++. ​ That's misleading. ​ C and C++ are separate languages. ​ Confusing them is responsible for many problems.
  
-The compilers found at the CHPC fall into three families: GCC, Intel and Sun Studio.+The compilers found at the CHPC fall into three families: GCC, Intel and [[guide:​m9000|Sun Studio]].
  
 > '​GCC'​ stands for GNU Compiler Collection; '​gcc'​ stands for GNU C Compiler; try not to confuse them 8-) > '​GCC'​ stands for GNU Compiler Collection; '​gcc'​ stands for GNU C Compiler; try not to confuse them 8-)
Line 72: Line 72:
 =====Which Compilers am I Using?===== =====Which Compilers am I Using?=====
  
-That's a very good question. ​ And it's usually asked this way:+That's a very good question.
  
 +====Table of Compiler Commands for Version====
  
 +| Language ^  GCC         ​^ ​ Intel     |
 +^ C        | ''​%%gcc --version%%'' ​     | ''​icc -v'' ​   |
 +^ Fortran ​ | ''​%%gfortran --version%%''​ | ''​ifort -v'' ​ |
 +^ C++      | ''​%%g++ --version%%'' ​     | ''​icpc -v'' ​  |
 +
 +The ''​-v''​ options stands for '​verbose'​ and it produces additional messages when used with any compiler command. ​ For the Intel compilers, ''​-v''​ by itself just produces the version:
 +
 +<code bash>
 +login01:~$ icc -v
 +Version 12.0.0
 +</​code>​
 +
 +For the GCC compilers, ''​-v''​ produces a lot more information:​
 +
 +<​code>​
 +login01:~$ gfortran -v
 +Using built-in specs.
 +Target: x86_64-redhat-linux
 +Configured with: ../​configure --prefix=/​usr --mandir=/​usr/​share/​man --infodir=/​usr/​share/​info ​
 +--enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib ​
 +--enable-__cxa_atexit --disable-libunwind-exceptions --enable-libgcj-multifile --enable-
 +languages=c,​c++,​objc,​obj-c++,​java,​fortran,​ada --enable-java-awt=gtk --disable-dssi ​
 +--disable-plugin --with-java-home=/​usr/​lib/​jvm/​java-1.4.2-gcj-1.4.2.0/​jre --with-cpu=generic ​
 +--host=x86_64-redhat-linux
 +Thread model: posix
 +gcc version 4.1.2 20080704 (Red Hat 4.1.2-52)
 +</​code>​
 +
 +Which is why GCC compilers provide the long option ''​%%--version%%''​ to just obtain the version:
 +
 +<​code>​
 +login01:~$ gfortran --version
 +GNU Fortran (GCC) 4.1.2 20080704 (Red Hat 4.1.2-52)
 +Copyright (C) 2007 Free Software Foundation, Inc.
 +
 +GNU Fortran comes with NO WARRANTY, to the extent permitted by law.
 +You may redistribute copies of GNU Fortran
 +under the terms of the GNU General Public License.
 +For more information about these matters, see the file named COPYING
 +
 +</​code>​
 +
 +> You also get a copyright message but the version is in the first line.
 +> <​code>​login01:​~$ gfortran --version | head -1
 +GNU Fortran (GCC) 4.1.2 20080704 (Red Hat 4.1.2-52)</​code>​
 +
 +Using a different, newer, version of GCC is easy through the use of GNU [[guide:​compiling|modules]]:​
 +
 +<code bash>
 +login01:~$ module load gcc
 +login01:~$ gfortran --version | head -1
 +GNU Fortran (GCC) 4.7.2
 +</​code>​
  
  
/var/www/wiki/data/pages/howto/compiling_tips_n_tricks.txt · Last modified: 2013/07/25 11:42 by kevin