---
name: "snmpc"
section: "1"
platform: "linux"
package: "erlang-snmp"
version: "29.1.1-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/snmpc"
---

# snmpc(1)

SNMP MIB compiler frontend

## NAME

snmpc - SNMP MIB compiler frontend

## SYNOPSIS

snmpc \[options\] file.mib \| file.bin

## DESCRIPTION

The *snmpc* program provides a way to run the SNMP MIB compiler of the Erlang system.

*snmpc* compiles an SNMP MIB file. See compile/1,2 for more information.

It can also be used to generate a header file (*.hrl*) with definitions of Erlang constants for the objects in the MIB. See mib\_to\_hrl/1.

### Compiler options

The following options are supported (note that most of these relate to the compilation of the MIB file):

- \--help

  Prints help info.

- \--version

  Prints application and mib format version.

- \--verbosity verbosity

  Print debug info.

  *verbosity* = *trace* \| *debug* \| *log* \| *info* \| *silence*

  Defaults to *silence*.

- \--warnings \| --W

  Print warning messages.

- \--wae \| --Werror

  Warnings as errors. Indicates that warnings shall be treated as errors.

- \--o directory

  The directory where the compiler should place the output files. If not specified, output files will be placed in the current working directory.

- \--i Directory

  Specifies the path to search for imported (compiled) MIB files. By default, the current working directory is always included.

  This option can be present several times, each time specifying *one* path.

- \--il Directory

  This option (include\_lib), specifies a list of directories to search for imported MIBs. It assumes that the first element in the directory name corresponds to an OTP application. The compiler will find the current installed version. For example, the value \["snmp/mibs/"\] will be replaced by \["snmp-3.1.1/mibs/"\] (or what the current version may be in the system). The current directory and the "snmp-home"/priv/mibs/ are always listed last in the include path.

- \--sgc

  This option (skip group check), if present, disables the group check of the mib compiler. That is, should the OBJECT-GROUP and the NOTIFICATION-GROUP macro(s) be checked for correctness or not.

- \--dep

  Keep deprecated definition(s). If not specified the compiler will ignore deprecated definitions.

- \--desc

  The DESCRIPTION field will be included.

- \--ref

  The REFERENCE field will be included.

- \--imp

  The IMPORTS field will be included.

- \--mi

  The MODULE-IDENTITY field will be included.

- \--mc

  The MODULE-COMPLIANCE field will be included.

- \--ac

  The AGENT-CAPABILITIES field will be included.

- \--mod module

  The module which implements all the instrumentation functions.

  The name of all instrumentation functions must be the same as the corresponding managed object it implements.

- \--nd

  The default instrumentation functions will  *not* be used if a managed object have no instrumentation function. Instead this will be reported as an error, and the compilation aborts.

- \--rrnac

  This option, if present, specifies that the row name assign check shall not be done strictly according to the SMI (which allows only the value 1).

  With this option, all values greater than zero is allowed (\>= 1). This means that the error will be converted to a warning.

  By default it is not included, but if this option is present it will be.

### SEE ALSO

[erlc(1)](/erlc/1.md), *compile*, *snmpc*
