Vala的Makefile

杰克

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

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

有人可以在Vala中为Makefile指定语法吗?

阿尔托马斯

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

valac my_source_file.vala --output myprogram

使用valac --help找到更多的编译器选项。

一个简单的Makefile可能是:

sources = $(wildcard src/*.vala)

myprogram:
	valac $(sources) --output myprogram

将其另存为Makefile项目目录,然后发出命令makeor make myprogram,您将myprogram构建二进制文件有几件事要注意:

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

许多新的Vala项目正在使用Meson构建系统,因为它非常快且语法更简洁。使用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更容易管理。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章