# Install mcpp with Homebrew, apt, MacPorts, Nix, pacman, zypper

Alternative C/C++ preprocessor. Version 2.7.2 via Homebrew; verified 2026-06-19.

## Install

```sh
sudo av install brew:mcpp
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install mcpp
```

  Evidence: local Homebrew formula metadata

- MacPorts (94%):

```sh
sudo port install mcpp
```

  Evidence: MacPorts ports tree: devel/mcpp/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1

### Linux

- Debian apt (92%):

```sh
sudo apt install libmcpp-dev
```

  Evidence: Debian stable package indexes: libmcpp-dev from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz

- Nix (92%):

```sh
nix profile install nixpkgs#mcpp
```

  Evidence: nixpkgs package indexes: pkgs/by-name/mc/mcpp/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1

- pacman (92%):

```sh
sudo pacman -S mcpp
```

  Evidence: Arch Linux sync databases: mcpp from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz

- zypper (92%):

```sh
sudo zypper install libmcpp0
```

  Evidence: openSUSE Tumbleweed package metadata: libmcpp0 from https://download.opensuse.org/tumbleweed/repo/oss/repodata/be8d3611d25469107f32075a1697e69ec57a2b850b42348a658cc671ad5ec2b50760d02c3e59524d50da9a11d5be799bdaffba2e166e8ca8858512e3c0bd665d-primary.xml.zst

## Package facts

- **Package key:** brew:mcpp
- **Package manager:** Homebrew
- **Package manager page:** <https://formulae.brew.sh/formula/mcpp>
- **Version:** 2.7.2
- **Source summary:** Alternative C/C++ preprocessor
- **Homepage:** <https://mcpp.sourceforge.net/>
- **Upstream docs:** <https://mcpp.sourceforge.net/>
- **License:** BSD-2-Clause
- **Source archive:** <https://downloads.sourceforge.net/project/mcpp/mcpp/V.2.7.2/mcpp-2.7.2.tar.gz>
- **Last updated:** 2026-06-19T12:32:39-07:00
- **Generated:** 2026-07-08T07:18:31+00:00

## Executables

- mcpp (cli)
- mcpp (alias)

## Install behavior

- Post-install hook: not defined
- Bottle: available on arm64_big_sur, arm64_linux, arm64_monterey, arm64_sequoia, arm64_sonoma, arm64_tahoe, arm64_ventura, big_sur, catalina, monterey, sonoma, ventura

## Freshness

- Page generated: 2026-07-08
- Package-manager version: 2.7.2
- Package-manager updated: 2026-06-19
- Local data: ok
- Upstream repository: https://mcpp.sourceforge.net/
- info: Release/tag comparison is only available for GitHub repositories.
## Project history and usage

mcpp is a portable C/C++ preprocessor and validation suite by Kiyoshi Matsui. The official site describes it as an independent preprocessor that implements C90, C99, and C++98 preprocessing behavior, provides diagnostics, and can be built as a compiler-specific preprocessor, a compiler-independent command, or a subroutine library.

### Project history

The project was created to address portability and conformance problems in traditional compiler-bundled preprocessors. Its official homepage says mcpp was selected for Japan IPA's Exploratory Software Projects in both 2002 and 2003.

The public SourceForge-hosted project surface dates from April 2006, and the official homepage lists V.2.7.2 from November 2008 as the latest release.

### Adoption history

mcpp was packaged both as upstream binary archives and by operating-system distributions. The official download page documents FreeBSD, Linux RPM and deb, Mac OS X, and Windows packages, and separately notes distribution packages for Fedora, Debian, Ubuntu, OpenSUSE, Gentoo, Slackware, and MacPorts.

Distribution packaging split the executable, shared library, development files, and documentation on Fedora and Debian-family systems, which made mcpp useful as a reusable compiler-toolchain component rather than only as a standalone command.

### How it is used

The command-line program is installed as `mcpp`. The official download page points users to the bundled manual and explains that source archives include source code, a validation suite, and English and Japanese documentation.

Typical package-manager usage is installing a small preprocessor tool or library for C/C++ toolchains, conformance testing, macro debugging, or historical build compatibility.

### Why package nerds care

mcpp matters to package nerds because it is a small compiler component that was packaged independently of a full compiler. Its history includes classic Unix packaging patterns: source tarballs, RPMs, debs, ports, a shared library package, development headers, and documentation packages.

It is also a useful example of an important package whose official presence is an old project homepage and release archive rather than a modern canonical Git repository.

### Timeline

- 2002: Selected for IPA Exploratory Software Projects.
- 2003: Selected again for IPA Exploratory Software Projects.
- 2006-04: Project located on SourceForge.
- 2008-11: V.2.7.2 released.

### Related projects

- mcpp is related to GCC, Visual C++, C and C++ compiler toolchains, and distribution packages such as `mcpp`, `libmcpp`, `libmcpp-dev`, and `mcpp-doc`.

### Sources

- <https://mcpp.sourceforge.net/>
- <https://mcpp.sourceforge.net/download.html>


## Security Notes

narrow executable package without higher-risk signals.

- **Geiger risk:** green / low
- narrow executable package without higher-risk signals

## Source Database Details

- **Source Database:** Homebrew formula API
- **Tap:** homebrew/core
- **Full Name:** mcpp
- **Version Scheme:** 0
- **Revision:** 0
- **Bottle Stable Root URL:** <https://ghcr.io/v2/homebrew/core>
- **Deprecated:** no
- **Disabled:** no
- **Keg Only:** no
- **URL Keys:** stable

## Other Package-Manager Records

- Debian apt - libmcpp-dev - 2.7.2-5.2: normalized package name match | Debian stable package indexes: libmcpp-dev from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | Alternative C/C++ preprocessor (development files) | http://mcpp.sourceforge.net/
- Debian apt - libmcpp0 - 2.7.2-5.2: normalized package name match | Debian stable package indexes: libmcpp0 from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | Alternative C/C++ preprocessor (shared library) | http://mcpp.sourceforge.net/
- Debian apt - mcpp - 2.7.2-5.2: normalized package name match | Debian stable package indexes: mcpp from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | Alternative C/C++ preprocessor | http://mcpp.sourceforge.net/
- Debian apt - mcpp-doc - 2.7.2-5.2: normalized package name match | Debian stable package indexes: mcpp-doc from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | Alternative C/C++ preprocessor (manual) | http://mcpp.sourceforge.net/
- Nix - mcpp: normalized package name match | nixpkgs package indexes: pkgs/by-name/mc/mcpp/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
- Ubuntu apt - libmcpp-dev - 2.7.2-5.1: normalized package name match | Ubuntu 24.04 LTS package indexes: libmcpp-dev from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | Alternative C/C++ preprocessor (development files) | http://mcpp.sourceforge.net/
- Ubuntu apt - libmcpp0 - 2.7.2-5.1: normalized package name match | Ubuntu 24.04 LTS package indexes: libmcpp0 from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | Alternative C/C++ preprocessor (shared library) | http://mcpp.sourceforge.net/
- Ubuntu apt - mcpp - 2.7.2-5.1: normalized package name match | Ubuntu 24.04 LTS package indexes: mcpp from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | Alternative C/C++ preprocessor | http://mcpp.sourceforge.net/
- Ubuntu apt - mcpp-doc - 2.7.2-5.1: normalized package name match | Ubuntu 24.04 LTS package indexes: mcpp-doc from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | Alternative C/C++ preprocessor (manual) | http://mcpp.sourceforge.net/
- pacman - mcpp - 2.7.2.3-1: normalized package name match | Arch Linux sync databases: mcpp from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz | Matsui's CPP implementation precisely conformed to standards | http://mcpp.sourceforge.net
- zypper - libmcpp0 - 2.7.2.2-1.3: normalized package name match | openSUSE Tumbleweed package metadata: libmcpp0 from https://download.opensuse.org/tumbleweed/repo/oss/repodata/be8d3611d25469107f32075a1697e69ec57a2b850b42348a658cc671ad5ec2b50760d02c3e59524d50da9a11d5be799bdaffba2e166e8ca8858512e3c0bd665d-primary.xml.zst | The shared library of Matsui's C Preprocessor | https://mcpp.sourceforge.net/
- zypper - mcpp - 2.7.2.2-1.3: normalized package name match | openSUSE Tumbleweed package metadata: mcpp from https://download.opensuse.org/tumbleweed/repo/oss/repodata/be8d3611d25469107f32075a1697e69ec57a2b850b42348a658cc671ad5ec2b50760d02c3e59524d50da9a11d5be799bdaffba2e166e8ca8858512e3c0bd665d-primary.xml.zst | Matsui's C Preprocessor | https://mcpp.sourceforge.net/
- zypper - mcpp-devel - 2.7.2.2-1.3: normalized package name match | openSUSE Tumbleweed package metadata: mcpp-devel from https://download.opensuse.org/tumbleweed/repo/oss/repodata/be8d3611d25469107f32075a1697e69ec57a2b850b42348a658cc671ad5ec2b50760d02c3e59524d50da9a11d5be799bdaffba2e166e8ca8858512e3c0bd665d-primary.xml.zst | Development files for mcpp | https://mcpp.sourceforge.net/
- MacPorts - mcpp: normalized package name match | MacPorts ports tree: devel/mcpp/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1


## Related links

- [Terminal utility packages](https://www.automicvault.com/pkg/terminal-utilities/) - Matched terminal and command-line workflow metadata.
- [Text processing packages](https://www.automicvault.com/pkg/text-processing-tools/) - Matched text, document, or structured-data processing metadata.
- [Developer build packages](https://www.automicvault.com/pkg/developer-build-tools/) - Matched build, compiler, generator, or developer workflow metadata.
- [Language runtime packages](https://www.automicvault.com/pkg/language-runtime-packages/) - Matched language runtime, compiler, or interpreter metadata.
- [ice](https://www.automicvault.com/pkg/brew/ice/) - Popular package that depends on this formula.
- [mingw-w64](https://www.automicvault.com/pkg/brew/mingw-w64/) - Shares av.db curated category or tags: c, cli, compilers, cpp, developer-tools.
- [aarch64-elf-gcc](https://www.automicvault.com/pkg/brew/aarch64-elf-gcc/) - Shares av.db curated category or tags: c, cli, compilers, developer-tools.
- [adaptivecpp](https://www.automicvault.com/pkg/brew/adaptivecpp/) - Shares av.db curated category or tags: cli, compilers, cpp, developer-tools.
- [cloog](https://www.automicvault.com/pkg/brew/cloog/) - Shares av.db curated category or tags: cli, compiler-tools, compilers, developer-tools.
- [creduce](https://www.automicvault.com/pkg/brew/creduce/) - Shares av.db curated category or tags: c, cli, compilers, developer-tools.
- [abi-dumper](https://www.automicvault.com/pkg/brew/abi-dumper/) - Shares av.db curated category or tags: c, cli, cpp, developer-tools.
- [arm-linux-gnueabihf-binutils](https://www.automicvault.com/pkg/brew/arm-linux-gnueabihf-binutils/) - Shares av.db curated category or tags: cli, compilers, developer-tools.
- [arm-none-eabi-binutils](https://www.automicvault.com/pkg/brew/arm-none-eabi-binutils/) - Shares av.db curated category or tags: cli, compilers, developer-tools.

## Combined YAML source

View the package source record on GitHub. [combined/mcpp.yml](https://github.com/automic-vault/db/blob/main/combined/mcpp.yml)


## Sources

- Nucleus package database
- Geiger risk classifier
- package-page enrichment
- curated package history
- package version freshness
- av.db category and tag curation
- package relationship graph
- external package-manager database matches
- cross-ecosystem install command graph
