Arquivos-fonte e compilação

Código vala é escrito em arquivos com extenção .vala. Ele não reforça a estrutura tanto quanto linguagens como Java - não existem conceitos de pacotes ou classes nos arquivos. Invés disso a estrutura é definida pelo texto dentro de cada arquivo, descrevendo a localização lógica do código com construtores como namespaces. Quando você quer compilar código Vala, você descreve ao compilador uma lista de arquivos requeridos, e Vala entende como eles se encaixam.

A vantagem disso é que você pode por quantas classes ou funções você quiser dentro do arquivo, até combinando partes de diferentes namespaces juntas. Isso não é necessáriamente uma boa ideia. Existem certas convenções que você provavelmente quer seguir. Um bom exemplo de como estruturar um projeto em Vala é o próprio projeto Vala.

Todos os arquivos fonte para o pacote são supridos como parâmetros da linha de comando para o compilador Vala valac, junto com as bandeiras(flags) do compilador. Por exemplo:

$ valac compiler.vala --pkg libvala

irá produzir um binário com o nome compiler que vincula com o pacote libvala. De fato, é como o compilador valac é produzido!

Se você quer que o binário tenha um nome diferente ou se você passou multiplos arquivos fonte ao compilador você pode especificar o nome do executável explicitamente com o parâmetro -o:

$ valac source1.vala source2.vala -o meuprograma
$ ./meuprograma

Se você passar o parầmetro -C ao valac, ele não compilará seu programa em arquivo binário. Invés disso a saída será o código C para cada código fonte Vala correspondente, nesse caso source1.c e source2.c. Se você olhar o conteudo desses arquivo você pode ver programar uma classe em Vala é equivalente a mesma tarefa em C, porém bem mais sucinto. Você vai também perceber que essa classe é registrada dinamicamente na execução. Isso é um bom exemplo do poder da plataforma GNOME, mas como foi dito antes, você não precisa saber sobre isso para usar Vala.

Se você quer ter um arquivo header em C para o seu projeto você pode usar o parâmetro -H:

$ valac ola.vala -C -H ola.h

results matching ""

    No results matching ""