首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Vala的Makefile

Vala的Makefile
EN

Stack Overflow用户
提问于 2020-04-25 03:27:47
回答 2查看 285关注 0票数 2

我是Vala的新手,学习为初级操作系统Hera编写GTK应用程序(基于Ubuntu18.04.3)。我找不到任何关于如何为我的程序编写一个make文件的文档。

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

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-04-25 11:57:28

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

valac my_source_file.vala --output myprogram

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

一个简单的Makefile可以是:

代码语言:javascript
复制
sources = $(wildcard src/*.vala)

myprogram:
	valac $(sources) --output myprogram

将其保存为项目目录中的Makefile,并发出命令makemake myprogram,您将生成二进制文件myprogram。有几件事需要注意:

  1. 选项卡用于缩进,以防出现在示例中。
  2. 在对源文件进行任何更改时,需要删除输出文件以重新生成输出文件。
  3. 通配符用于将所有Vala源文件包含在src目录中。

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

代码语言:javascript
复制
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文件:

代码语言:javascript
复制
sources += files(
    'a.vala',
    'b.vala',
    )

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

若要构建项目,请首先设置生成目录。从项目目录中执行此操作:

代码语言:javascript
复制
meson setup builddir

然后构建项目:

代码语言:javascript
复制
ninja -C builddir

您可能需要为基于红帽的发行版(如Fedora )使用ninja-build。可执行文件myprogrambuilddir中。

如果您更改了源文件,那么ninja -C builddir将重新生成,不需要删除任何内容。

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

票数 5
EN

Stack Overflow用户

发布于 2020-04-25 03:36:56

我想现在梅森是建造瓦拉的方法了。查看https://mesonbuild.com/Vala.html

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61420616

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档