Gun*_*ack 2 makefile vala elementary-os
我是 Vala 的新手,正在学习为基本 OS Hera(基于 Ubuntu 18.04.3)编写 GTK 应用程序。我找不到任何关于如何为我的程序编写 make 文件的文档。
我希望在项目根目录的“src”文件夹下组织我的 .vala 文件。我也不知道如何为 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
Run Code Online (Sandbox Code Playgroud)
将其另存为Makefile项目目录并发出命令make或make myprogram,您将myprogram构建二进制文件。有几点需要注意:
src目录中的所有 Vala 源文件许多新的 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)
Run Code Online (Sandbox Code Playgroud)
保存此项目的目录,然后在src目录中的meson.build文件,该文件明确列出的源文件:
sources += files(
'a.vala',
'b.vala',
)
Run Code Online (Sandbox Code Playgroud)
请注意,subdir()使用meson.build文件src目录的源文件追加到sources变量。
要构建项目,首先要设置构建目录。从项目目录执行此操作:
meson setup builddir
Run Code Online (Sandbox Code Playgroud)
然后构建项目:
ninja -C builddir
Run Code Online (Sandbox Code Playgroud)
您可能需要使用ninja-build基于 Red Hat 的发行版,例如 Fedora。可执行文件myprogram位于builddir.
如果您更改源文件,则ninja -C builddir无需删除任何内容即可重建。
随着项目的增长,您会发现 Meson 比使用 Makefile 更易于管理。
| 归档时间: |
|
| 查看次数: |
186 次 |
| 最近记录: |