Skip site navigation (1)Skip section navigation (2)

  
 
  

home | help
mpicc(1)			       MPI				mpicc(1)

NAME
     mpicc -  Compiles and links MPI programs written in C

DESCRIPTION
     This command can be used to compile and link MPI programs written in C.  It
     provides  the  options and any special libraries that are needed to compile
     and link MPI programs.

     It is important to use this command, particularly when linking programs, as
     it provides the necessary libraries.

COMMAND LINE ARGUMENTS
     -show  - Show the commands that would be used without running them
     -help  - Give short help
     -cc=name
	    - Use compiler name instead of the default choice.	Use this only if
	    the compiler is compatible with the MPICH library (see below)
     -config=name
	    - Load a configuration file for a particular compiler.  This  allows
	    a single mpicc command to be used with multiple compilers.
     -compile_info
	    -  Show  the steps for compiling a program.  This option can be used
	    to see what options and include paths are used by mpicc.
     -link_info
	    - Show the steps for linking a program.  This option can be used  to
	    see what options and libraries are used by mpicc.
     -profile=name
	    - Use the MPI profiling given by name.  See below for details
     -echo  -  Show exactly what this program is doing.  This option should nor-
	    mally not be used.
     -static
	    - mpi - Use a statically compile MPI library, but  shared  libraries
	    for all of the other dependencies.
     -mpi   - abi  - Compile and link using the standard MPI ABI.
     others
	    -  are  passed  to	the  compiler or linker.  For example, -c causes
	    files to be compiled, -g selects compilation with debugging on  most
	    systems, and -o name causes linking with the output executable given
	    the name name .

ENVIRONMENT VARIABLES
     The  environment  variable  MPICH_CC may be used to select different C com-
     piler and linker.	Note that since MPICH is built with a particular  C  and
     Fortran compiler, changing the compilers used can cause problems.	Use this
     only if you could intermix code compiled with the different compilers.

     The  environment variable MPICC_PROFILE specifies a profile library and has
     the same effect as if -profile=$MPICC_PROFILE were used as an  argument  to
     mpicc .  See the discussion of -profile below for more details.

COMPATIBLE COMPILERS
     The  MPI  library	may be used with any compiler that uses the same lengths
     for basic data objects (such as long double ) and that uses compatible run-
     time libraries.  On many systems, the various compilers are compatible  and
     may be used interchangeably.  There are exceptions; if you use the MPICH_CC
     environment  variable or the -cc=name command-line argument to override the
     choice of compiler and encounter problems, try reconfiguring MPICH with the
     new compiler and installing MPICH in a separate location.	See the  instal-
     lation manual for more details.

EXAMPLES
     To compile a single file foo.c , use
     mpicc -c foo.c

     To link the output and make an executable, use
     mpicc -o foo foo.o

     Combining compilation and linking in a single command
     mpicc -o foo foo.c

     is a convenient way to build simple programs.

SELECTING A PROFILING LIBRARY
     The  -profile=name  argument allows you to specify an MPI profiling library
     to be used.  name can have two forms:

     A library in the same directory as the MPI library
     The name of a profile configuration file

     If name is a library, then this library is included before the MPI library.
     This allows the simple use of libraries that make use of the MPI  profiling
     interface and that are installed in the same directory as the MPI library.

     If  name.conf  is the name of a file in the sysconfdir directory, then this
     is read and may define the following variables:
     PROFILE_PRELIB
	    - Libraries (and paths) to include before the MPI library
     PROFILE_POSTLIB
	    - Libraries to include after the MPI library
     PROFILE_INCPATHS
	    - C preprocessor arguments for any include files For example, to add
	    /usr/local/myprof/include to the include path and the  library  lib-
	    myprof.a in /usr/local/myprof/lib to the link step, you could create
	    the file myprof.conf with the lines

	    PROFILE_PRELIB="-L/usr/local/myprof/lib -lmyprof"
	    PROFILE_INCPATHS="-I/usr/local/myprof/include"

	    and  place	it in the sysconfdir directory (this directory is set at
	    configure time when MPICH is built).  Then	using  the  command-line
	    argument -profile=myprof will cause these definitions to be added to
	    the relevant compile commands.

SEE ALSO
     mpicxx, mpifort, mpiexec

				    4/10/2026				mpicc(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=mpicc&sektion=1&manpath=FreeBSD+Ports+15.1.quarterly>

home | help