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 [2021/12/09 16:42] (current)
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>
  
  
/app/dokuwiki/data/attic/howto/compiling_tips_n_tricks.1374224403.txt.gz · Last modified: 2021/12/09 16:42 (external edit)