2

我是 Vala 的新手,正在学习为基本 OS Hera(基于 Ubuntu 18.04.3)编写 GTK 应用程序。我找不到任何关于如何为我的程序编写 make 文件的文档。

我希望在项目根目录的“src”文件夹下组织我的 .vala 文件。我也不知道如何为 vala 编译器指定可执行文件的名称。它只是从 vala 源文件的名称中获取名称。

有人可以为 Vala 中的 makefile 指定语法吗?

4

2 回答 2

5

Vala 编译器valac具有--output用于命名生成的二进制文件的参数。例如:

valac my_source_file.vala --output myprogram

用于valac --help查找更多编译器选项。

一个简单的Makefile可能是:

sources = $(wildcard src/*.vala)

myprogram:
	valac $(sources) --output myprogram

将其保存Makefile在项目目录中并发出命令make,否则make myprogram您将myprogram构建二进制文件。有几点需要注意:

  1. 制表符用于缩进,以防示例中没有出现
  2. 当您对源文件进行任何更改时,您将需要删除输出文件以重建它
  3. 通配符用于包含目录中的所有 Vala 源src文件

许多新的 Vala 项目都在使用Meson 构建系统,因为它非常快并且语法更简洁。使用介子,一个简单的meson.build文件可以是:

project('myprogram project', 'vala', 'c')

dependencies = [
    dependency('glib-2.0'),
    dependency('gobject-2.0'),
]

sources = []
subdir('src')

executable('myprogram', sources, dependencies: dependencies)

将其保存在项目目录中,然后在该src目录中保存一个明确列出源文件的文件meson.build

sources += files(
    'a.vala',
    'b.vala',
    )

请注意,subdir()使用目录中的meson.build文件src将源文件附加到sources变量中。

要构建项目,首先设置构建目录。从项目目录执行此操作:

meson setup builddir

然后构建项目:

ninja -C builddir

您可能需要使用ninja-build基于 Red Hat 的发行版,例如 Fedora。可执行文件 ,myprogram位于builddir.

如果您更改源文件ninja -C builddir,则无需删除任何内容即可重建。

随着项目的发展,您会发现 Meson 比使用 Makefile 更易于管理。

于 2020-04-25T11:57:28.807 回答
3

我猜介子是当今构建 vala 的方式。查看 https://mesonbuild.com/Vala.html

于 2020-04-25T03:36:56.353 回答