vala

news/2024/12/3 7:44:42/
根据百度百科的解释,vala是一种新的、为GNOME开发者提供的具有现代化编程语言功能的一种编程语言。

1. 安装
在ubuntu下安装很简单,使用命令sudo apt-get install valac-0.16(12.04版本),测试valac编译器的版本号,可以输入valac --version命令。

2. HelloWorld程序
class Demo.HelloWorld : GLib.Object {public static int main(string[] args){stdout.printf("Hello, World\n");return 0;}
}

3. 编译运行
编译这个程序使用命令valac hello.vala,编译成功之后生成hello这个可执行程序,运行这个程序,输入结果为:
Hello, World

通过运行valac --version这条命令我们可以看到,vala版本为0.16.0,而最新的版本到了0.31.1,如果想要安装最新的vala版本,可以通过源码方式来安装,使用git命令clone最新的vala源码:
git clone git://git.gnome.org/vala

编译这个源码包是对环境有所要求的,其中就要求有valac,也就是说你必须要使用sudo apt-get install valac-0.16来安装一个比较老的vala版本,然后才能安装最新的版本。

进入到vala源码包中,直接运行autogen.sh这个脚本来生成Makefile,然后以make && sudo make install方式来安装,注意,默认是安装在/usr/local目录下的,好了,把之前用apt-get install命令安装的vala给删掉(当然不删掉也是可以的),但是在运行valac命令时提示vala共享库未找到,将vala共享库放到/usr/lib中是可以的,以为是/usr/local/lib为加入到系统库路径中的原因,但是在/etc/ld.so.conf.d/libc.conf文件中找到了这么一条/usr/local/lib,也就是说这个这个目录是加入到了系统库路径中的,然后运行sudo /sbin/ldconfig命令,却提示下面的错误信息:
/sbin/ldconfig.real: /usr/local/lib/libvala-0.32.so.0 is not a symbolic link

通过比较发现libvala-0.32.so、libvala-0.32.so.0、libvala-0.32.so.0.0.0这三个文件是一样的,好吧,将之前的libvala-0.32.so.0文件给删掉,按照上面的那条错误指示运行一下下面这条命令:
sudo ln -s libvala-0.32.so libvala-0.32.so.0

然后再运行sudo /sbin/ldconfig命令,没有提示上面的错误信息了。

最后运行一下valac --version命令,得到最新版本号为:
0.31.1.11-094fd


参考:https://wiki.gnome.org/Projects/Vala/Hacking#C_Code_Generation
https://wiki.gnome.org/Projects/Vala/Tutorial


http://www.ppmy.cn/news/165116.html

相关文章

VAE与CVAE

CVAE理论到代码 1. VAE的本质1.1 深度理解VAE1.2 VAE 与GAN 2. CVAE2.1 CVAE简介2.2 CVAE基本模型2.3 数学理解 参考 1. VAE的本质 1.1 深度理解VAE VAE本质就是在我们常规的自编码器的基础上,对encoder的结果(在VAE中对应着计算均值的网络)…

VQA

https://zhuanlan.zhihu.com/p/29688475 2017 VQA Challenge 第一名技术报告 张俊 2 天前 作者丨罗若天 学校丨TTIC博士生 研究方向丨NLP,CV 1. 前言 之前听 Chris Manning 讲过一个 talk,说他们复现别人的 paper,按照别人的算法写&#xff0…

# ## __VA_ARGS__ ##__VA_ARGS__的使用说明

程序开发或者看工程代码时可能在宏定义中有涉及到#、##、__VA_ARGS__和##__VA_ARGS__的使用,简单介绍下使用方法。 1、 #–将其后面紧跟的符号转换为字符串 #操作符是将其后面紧跟的符号变为字符串的形式,示例代码: #define PRINT_VAL(n, va…

AVA

声明:作者翻译论文仅为学习,如有侵权请联系作者删除博文,谢谢! 论文链接:arXiv:1705.08421 [cs.CV] 《AVA: A Video Dataset of Spatio-temporally Localized Atomic Visual Actions》论文翻译 摘要介绍相关工作数据收…

va_list 、va_start、 va_arg、 va_end 使用说明

在ANSI C中,这些宏的定义位于stdarg.h中: typedef char *va_list; va_start宏,获取可变参数列表的第一个参数的地址(list是类型为va_list的指针,param1是可变参数最左边的参数): #define va_…

#、##、__VA_ARGS__的使用

使用打印信息的接口时,经常见到__VA_ARGS__和##__VA_ARGS__这两个字符串,花时间学习下这部分的知识,发现还有#和##这两个比较有意思的字符串,记下他们的用法: #: 用来把参数转换成字符串; 例&a…

VA、RVA、FOA

PE 中涉及的地址有四类,它们分别是: 虚拟内存地址(VA)相对虚拟内存地址(RVA)文件偏移地址(FOA)特殊地址 要想了解这些概念,需要先简单地了解一下 32 位环境下 Windows …

va_list、va_start和va_end的用法

在项目的代码中看到函数不定参数的使用,现在总结一下va_list、va_start和va_end三个宏的用法。 c语言提供了函数的不定长参数使用,比如 void func(int a, …)。三个省略号,表示了不定长参数。注意:c标准规定了,函数必须…