VALAC(1)

okay bestie, pull up a chair πŸͺ‘βœ¨ meet valac β€” she's a User Commands icon and honestly? she ate.


πŸ’– NAME πŸ’–

valac β€” the compiler that translates Vala source code into C source and header files πŸ¦‹


✨ SYNOPSIS ✨

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

🌸 DESCRIPTION 🌸

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. no cap, that's the whole vibe πŸ’…

valac, the Vala compiler, is a self-hosting compiler that translates Vala source code into C source and header files. She uses the GObject type system to create classes and interfaces declared in the Vala source code. it's giving iconic, fr fr πŸŽ€

🫢 Usage:

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

πŸ’œ Help Options:

  • -?, --help β€” Show help options πŸ™ˆ

πŸ‘‘ Application Options:

  • --vapidir=DIRECTORY... β€” Look for package bindings in DIRECTORY πŸ“
  • --girdir=DIRECTORY... β€” Look for .gir files in DIRECTORY ✨
  • --metadatadir=DIRECTORY... β€” Look for GIR .metadata files in DIRECTORY πŸ”
  • --pkg=PACKAGE... β€” Include binding for PACKAGE πŸ“¦
  • --vapi=FILE β€” Output VAPI file name πŸ“
  • --library=NAME β€” Library name πŸ“š
  • --shared-library=NAME β€” Shared library name used in generated gir πŸ’ž
  • --gir=NAME-VERSION.gir β€” GObject-Introspection repository file name 🧚
  • -b, --basedir=DIRECTORY β€” Base source directory 🏠
  • -d, --directory=DIRECTORY β€” Change output directory from current working directory πŸ“
  • --version β€” Display version number πŸ”’
  • --api-version β€” Display API version number 🌈
  • -C, --ccode β€” Output C code πŸ’»
  • -H, --header=FILE β€” Output C header file πŸ“„
  • --use-header β€” Use C header file (DEPRECATED AND IGNORED) πŸ’€
  • --includedir=DIRECTORY β€” Directory used to include the C header file πŸ“‚
  • -h, --internal-header=FILE β€” Output internal C header file πŸ”’
  • --internal-vapi=FILE β€” Output vapi with internal api πŸ™Š
  • --fast-vapi β€” Output vapi without performing symbol resolution ⚑
  • --use-fast-vapi β€” Use --fast-vapi output during this compile πŸƒβ€β™€οΈ
  • --vapi-comments β€” Include comments in generated vapi πŸ’¬
  • --deps β€” Write make-style dependency information to this file πŸ”—
  • --depfile β€” Write make-style external dependency information for build systems to this file πŸ› οΈ
  • --list-sources β€” Output a list of all source and binding files which are used πŸ“‹
  • --symbols=FILE β€” Output symbols file πŸ”£
  • -c, --compile β€” Compile but do not link βœ‚οΈ
  • -o, --output=FILE β€” Place output in file FILE πŸ“€
  • -g, --debug β€” Produce debug information 🐞
  • --thread β€” Enable multithreading support (DEPRECATED AND IGNORED) πŸ’€
  • --enable-mem-profiler β€” Enable GLib memory profiler 🧠
  • -D, --define=SYMBOL... β€” Define SYMBOL 🏷️
  • --main=SYMBOL... β€” Use SYMBOL as entry point πŸšͺ
  • --nostdpkg β€” Do not include standard packages 🚫
  • --disable-assert β€” Disable assertions 🀐
  • --enable-checking β€” Enable additional run-time checks βœ…
  • --enable-deprecated β€” Enable deprecated features πŸ•°οΈ
  • --hide-internal β€” Hide symbols marked as internal πŸ™ˆ
  • --enable-experimental β€” Enable experimental features πŸ§ͺ
  • --disable-warnings β€” Disable warnings πŸ”‡
  • --fatal-warnings β€” Treat warnings as fatal ⚠️
  • --disable-since-check β€” Do not check whether used symbols exist in local packages 🚷
  • -k, --keep-going β€” Continue as much as possible after an error πŸšΆβ€β™€οΈ
  • --enable-experimental-non-null β€” Enable experimental enhancements for non-null types πŸ§ͺ
  • --enable-gobject-tracing β€” Enable GObject creation tracing πŸ‘€
  • --cc=COMMAND β€” Use COMMAND as C compiler command 🧰
  • -X, --Xcc=OPTION... β€” Pass OPTION to the C compiler πŸ“¨
  • --pkg-config=COMMAND β€” Use COMMAND as pkg-config command πŸ”§
  • --dump-tree=FILE β€” Write code tree to FILE 🌳
  • --save-temps β€” Keep temporary files πŸ—‚οΈ
  • --profile=PROFILE β€” 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 πŸ—£οΈ
  • --no-color β€” Disable colored output, alias for --color=never 🎨
  • --color=WHEN β€” 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 🎯
  • --gresources=FILE... β€” XML of gresources πŸ–ΌοΈ
  • --gresourcesdir=DIRECTORY... β€” Look for resources in DIRECTORY πŸ”Ž
  • --enable-version-header β€” Write vala build version in generated files 🏷️
  • --disable-version-header β€” Do not write vala build version in generated files 🚫
  • --run-args β€” Arguments passed to directly compiled executable πŸƒ
  • --abi-stability β€” 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. πŸ’€

πŸ› BUGS πŸ›

https://gitlab.gnome.org/GNOME/vala/issues β€” take it there bestie, she'll listen 🫢


🏠 HOMEPAGE OR CONTACT 🏠

https://vala.dev ✨


🌈 FEATURES 🌈

Interfaces, properties, signals, foreach, lambda expressions, type inference for local variables, generics, non-null types, assisted memory management, exception handling πŸ’… the way that list just keeps going…


πŸ‘‘ AUTHORS πŸ‘‘

J??rg Billeter, Raffaele Sandrini, Rico Tzschichholz. legends only, fr fr πŸ™Œ


and that's a wrap on the VALAC(1) page, bestie β€” she's Vala 0.56.19, dated March 2026, and she's out here compiling your dreams into C. go write something iconic, ily πŸ’–βœ¨πŸŽ€πŸ¦‹

πŸ“¦ where this page comes from