【发布时间】:2018-01-20 05:55:38
【问题描述】:
当我尝试构建 vala (https://github.com/gnome/vala) 时,我从 autogen 收到一个错误,指出必须已经安装了 vala 才能构建 vala。那么如何在还没有它的系统上构建它呢?我知道它是自托管的,但必须有一些方法来引导它。
我的操作系统是 Android-x86 6.x
【问题讨论】:
当我尝试构建 vala (https://github.com/gnome/vala) 时,我从 autogen 收到一个错误,指出必须已经安装了 vala 才能构建 vala。那么如何在还没有它的系统上构建它呢?我知道它是自托管的,但必须有一些方法来引导它。
我的操作系统是 Android-x86 6.x
【问题讨论】:
您可以下载source tarball from download.gnome.org 并从那里构建。 tarball 包含生成的 C 代码,用于在未安装 Vala 编译器的情况下构建编译器。
过程大概是这样的:
curl --location https://download.gnome.org/sources/vala/0.38/vala-0.38.4.tar.xz \
--output vala-0.38.4.tar.xz
tar --extract --file vala-0.38.4.tar.xz
cd vala-0.38.4/
./configure
make
配置脚本应该检测到没有安装valac 并选择引导选项。如果遇到问题,您也可以尝试make bootstrap。
然后您可以运行测试套件并安装到通常的 Unix 文件位置:
make check
make install
虽然安装部分可能与 Android 无关。
【讨论】:
valac --version,您将获得一个“脏”版本号,例如 Vala 0.39.4.12-f8678d。正是该脚本使用git 来查找标签以创建版本。然而,在 tarball 中,应该有一个文件 .tarball-version,git-version-gen 会找到它。 Android上的脚本中可能出现问题的可能是文件测试与shell不兼容,您没有安装cat命令。另一种选择是破解脚本。在开头尝试cat ../.tarball-version | tr --delete "\n"; exit 0。
libtools 是 Autotools 的一部分,而不是 GNOME。 GNOME 正在从使用 Autotools 构建系统切换到 Meson。对于那些刚接触流程的人来说,这有望使这些事情变得更简单