---
name: "h2paspp"
section: "1"
platform: "linux"
package: "fpc"
version: "3.2.2-11"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/h2paspp"
---

# h2paspp(1)

Free Pascal h2pas preprocessor program.

## NAME

h2paspp - Free Pascal h2pas preprocessor program.

## SYNOPSIS

**h2paspp \[-doih\] file1 ... filen**

## DESCRIPTION

**h2paspp** reads one or more C header files and preprocesses them, writing the result  to files with the same name as the originals as it goes along.  It does not accept all preprocesser tokens of C, but takes care of the following  preprocessor directives:

- *#define symbol*

  Defines the new symbol *symbol. Note that macros are not supported.*

- *#if symbol*

  The text following this directive is included if *symbol* is defined.

- *#ifdef symbol*

  The text following this directive is included if *symbol* is defined.

- *#ifndef symbol*

  The text following this directive is included if *symbol* is not defined.

- *#include filename*

  Include directives are removed, unless the  **-I** option was given, in which case the include file is included and written to the output file.

- *#undef symbol*

  The symbol *symbol* is undefined.

## USAGE

**h2paspp** accepts one or more filenames and preprocesses them. It will read the input, and write output to a file with the same name unless the  **-o** option is given, in which case the file is written to the specified file. Note that only one output filename can be given.

## OPTIONS

h2paspp has a small number of options to control its behaviour:

- **-dsymbol**

  Define the symbol  *symbol* before processing is started.

- **-h**

  emit a small helptext.

- **-ooutfile**

  If this option is given, the output will be written to a file named *outfile. Note that only one output file can be given.*

## SEE ALSO

-

  [**ppc386**(1)](/ppc386/1.md) [**h2pas**(1)](/h2pas/1.md) [**cpp**(1)](/cpp/1.md)
