Skip to main content

  | मौसम…

411 समाचार
Public archive edition · Attributed source reporting with original dates · AI drafts are excluded

411 REFERENCE · Wikibooks

Vala Programming/Concepts/Basic

Reference material by Wikibooks contributors. This retains its source identity and is not 411 news reporting.

Source files valac is the Vala compiler, but it does not only accept Vala: it also accepts Genie (with python-like syntax, extension: .gs), C, and .vapi (Vala API) files. You can declare a low-level function in C, create an object with this function as method in Vala, and use both in a Genie file: you will get a ready-to-run executable. How does the Vala Compiler work The main function of Vala was to be a modern object-oriented programming language for GNOME. Both Vala and Genie sources are processed into C code, which is compiled. i.e., in this example: $ valac func.c obj.vala prog.gs -o program Valac generates obj.vala.c from obj.vala and prog.gs.c from prog.gs. Then, Valac runs GCC (with many -I arguments, automatically generated) to compile all files to object code, and finally ld is called by gcc: we will get a native executable, "program", from a mix of C, Vala and Genie source code. Arguments Of course, the typical arguments, like --version and --help work with Valac. It also inherits the -c (compile to .o, no linking) argument from GCC. Other useful arguments: -C: convert to C code --cc=COMMAND: use COMMAND as C compiler -Xopt: pass -opt as argument to the C compiler (ex: -Xcc=O3 sets GCC's optimizer to level 3) --pkg PNAME: add packages from pkg-config (like -pkg:PNAME in Mono mcs or `pkg-config PNAME --cflags --libs` in gcc) A complete example (program using GTK2 & goocanvas, some threading, etc.): valac --pkg gtk+-2.0 --pkg goocanvas --pkg glib-2.0 --thread --pkg gee-1.0 --debug --Xcc=-O3 gtk_goocanvas.vala Namespaces TODO Explain how to structure a project of a program or library written in Vala.