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

FreeBSD Manual Pages

  
 
  

home | help
mpicxx(1)			      MPI			     mpicxx(1)

NAME
       mpicxx -	 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  pro-
       grams, as it provides the necessary libraries.

COMMAND	LINE ARGUMENTS
       -show  -	Show the commands that would be	used without running them
       -help  -	Give short help
       -cxx=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 al-
	      lows a single mpicxx 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 mpicxx.
       -link_info
	      -	Show the steps for linking a program.  This option can be used
	      to see what options and libraries	are used by mpicxx.
       -profile=name
	      -	Use the	MPI profiling given by name.  See below	for details
       -echo  -	Show exactly what this program is doing.  This	option	should
	      normally not be used.
       -static
	      -	 mpi  -	 Use  a	statically compile MPI library,	but shared li-
	      braries 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  exe-
	      cutable given the	name name .

ENVIRONMENT VARIABLES
       The environment variables MPICH_CXX may be used to select different C++
       compiler	 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 argu-
       ment 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_CXX	environment variable or	the -cxx=name command-
       line argument to	override the choice of compiler	 and  encounter	 prob-
       lems,  try  reconfiguring  MPICH	 with the new compiler,	and installing
       MPICH in	a separate location.  See the installation manual for more de-
       tails.

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

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

       Combining compilation and linking in a single command
       mpicxx -o foo foo.cxx

       is a convenient way to build simple programs.

SELECTING A PROFILING LIBRARY
       The -profile=name argument allows you to	specify	an MPI	profiling  li-
       brary 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 li-
       brary.  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  li-
	      brary libmyprof.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
       mpicc, mpifort, mpiexec

				   2/3/2025			     mpicxx(1)

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

home | help