---
name: "mpiCC_lam"
section: "1"
platform: "linux"
package: "lam2-dev"
version: "6.3.2-3"
release: "Debian 2.2 (Potato)"
platforms: ["linux"]
url: "https://new.carta.tech/hcc"
---

# mpiCC\_lam(1)

Compile LAM C/C++ programs.

Part of [hcc(1)](/hcc/1.md).

## NAME

hcc, mpicc, hcp, mpiCC - Compile LAM C/C++ programs.

## SYNTAX

hcc \[-showme\] ...

hcp \[-showme\] ...

see [cc(1)](/cc/1.md) and [CC(1)](/CC/1.md) (or whatever your underlying C/C++ compilers are) for all other options.

## DESCRIPTION

*hcc* and *hcp* are convenience wrappers for the local native C and C++ compilers. Translation of a LAM program requires the linkage of the LAM specific libraries which may not reside in one of the standard search directories of [ld(1)](/ld/1.md).  It also often requires the inclusion of header files what may also not be found in a standard location. *hcc* passes its arguments to the local native C compiler along with the -I, -L and -l options required by LAM programs.  This includes all necessary options for ROMIO and/or C++ bindings support (if ROMIO/C++ support was included when LAM was compiled). *hcp* is similar, but invokes the native C++ compiler instead.

*mpicc* is now the same as  *hcc,* just as *mpiCC* is now the same as *hcp.* See the NOTES section, below.

By default, *hcc* uses the C compiler that was selected when LAM was configured (with the --with-cc flag to ./configure, or by setting the environment variable CC before ./configure was invoked) as the local native C compiler, but this can be overridden by the LAMHCC environment variable.  Likewise, *hcp* uses the C++ compiler that was selected when LAM was configured (with the --with-cpp flag to ./configure, or by setting the environment variable CXX before invoking ./configure) by default, but this can be overridden by the LAMHCP environment variable.

## OPTIONS

- \-showme

  Does not invoke the underlying C/C++ compiler.  Instead, it shows the command line that would be executed to compile the C/C++ program.

## NOTES

Previous versions of  *hcc* and  *hcp* did not automatically link in the MPI library.  Starting with LAM version 6.3, since *hcc* and *hcp* have become the de facto LAM C and C++ compilers, the *-lmpi* option is now automatically passed to the underlying compiler when linking LAM/MPI programs.

Previous versions of LAM included the  *mpicc* and *mpiCC* wrapper scripts to automatically pass *-lmpi* to  *hcc* and/or *hcp.* These scripts are now obsolete since  *hcc* and *hcp* now include *-lmpi* automatically.   *mpicc* and *mpiCC* are now symbolic links to *hcc* and  *hcp,* respectively, to ensure backward compatibility.

## SEE ALSO

[cc(1)](/cc/1.md), [CC(1)](/CC/1.md), [ld(1)](/ld/1.md), [lam-helpfile(5)](/lam-helpfile/5.md)
