valac-0.56 - Man Page

compiler that translates Vala source code into C source and header files


valac [OPTION]... [FILE]...


Vala  is  a  programming  language  that  aims  to  bring  modern programming language features to GNOME developers without imposing any additional  runtime requirements  and  without using  a different  ABI compared to applications and libraries written in C.

valac, the Vala compiler, is a self-hosting compiler that translates

Vala source code into C source and header files. It uses the GObject type system to create classes and interfaces declared in the Vala source code.


valac [OPTION?] FILE... - Vala Compiler

Help Options

-?,  --help

Show help options

Application Options


Look for package bindings in DIRECTORY


Look for .gir files in DIRECTORY


Look for GIR .metadata files in DIRECTORY


Include binding for PACKAGE


Output VAPI file name


Library name


Shared library name used in generated gir


GObject-Introspection repository file name

-b,  --basedir=DIRECTORY

Base source directory

-d,  --directory=DIRECTORY

Change output directory from current working directory


Display version number


Display API version number

-C,  --ccode

Output C code

-H,  --header=FILE

Output C header file




Directory used to include the C header file

-h,  --internal-header=FILE

Output internal C header file


Output vapi with internal api


Output vapi without performing symbol resolution


Use --fast-vapi output during this compile


Include comments in generated vapi


Write make-style dependency information to this file


Write make-style external dependency information for build systems to this file


Output a list of all source and binding files which are used


Output symbols file

-c,  --compile

Compile but do not link

-o,  --output=FILE

Place output in file FILE

-g,  --debug

Produce debug information


Enable multithreading support (DEPRECATED AND IGNORED)


Enable GLib memory profiler

-D,  --define=SYMBOL...



Use SYMBOL as entry point


Do not include standard packages


Disable assertions


Enable additional run-time checks


Enable deprecated features


Hide symbols marked as internal


Enable experimental features


Disable warnings


Treat warnings as fatal


Do not check whether used symbols exist in local packages

-k,  --keep-going

Continue as much as possible after an error


Enable experimental enhancements for non-null types


Enable GObject creation tracing


Use COMMAND as C compiler command

-X,  --Xcc=OPTION...

Pass OPTION to the C compiler


Use COMMAND as pkg-config command


Write code tree to FILE


Keep temporary files


Minimum runtime dependency: 'gobject' (default) or 'posix' (minimal libc)
gobject enables GLib's GType runtime type system. The runtime environment will usually require libgobject and its small number of dependencies. posix removes the dependency on GLib and disables the runtime type system. The profile either generates alternative code or errors at compile time if a Vala language feature is used that requires the runtime type system. This is useful for writing code, for example, that targets microcontrollers or for extremely small system utilities or container images. The runtime environment will usually require a small subset of the ISO C standard library.

-q,  --quiet

Do not print messages to the console

-v,  --verbose

Print additional messages to the console


Disable colored output, alias for --color=never


Enable color output, options are 'always', 'never', or 'auto'
When no value is given always is implied. When neither --color or --no-color are declared then --color=auto is used where output is colored when stderr is a terminal.

--target-glib='MAJOR.MINOR', or 'auto'

Target version of glib for code generation


XML of gresources


Look for resources in DIRECTORY


Write vala build version in generated files


Do not write vala build version in generated files


Arguments passed to directly compiled executable


Enable support for ABI stability
This changes the current behaviour to output public members of classes and interfaces the same order as they appear in Vala source. For libraries is recommended to use --abi-stability to ensure the maintainability of the resulting Application Binary Interface (ABI). This option is disabled by default for backward compatibility because it can break ABI of existing projects.


Homepage or Contact


Interfaces, properties, signals, foreach, lambda expressions, type inference for local variables, generics, non-null types, assisted memory management, exception handling


J??rg Billeter, Raffaele Sandrini, Rico Tzschichholz.

Referenced By

The man page valac(1) is an alias of valac-0.56(1).

March 2024 Vala 0.56.15