Vala学习笔记(一) - HelloWorld!
- Vala是什么?
Vala官方网站对它的描述:
Compiler for the GObject type system
Vala is a new programming language that aims to bring modern programming language features to GNOME developers without imposing any additional runtime requirements and without using a different ABI compared to applications and libraries written in C.
百度百科对Vala的描述:
Vala是一种新的编程语言,其目标是为GNOME开发者提供现代化的编程语言功能,同时没有额外的运行时要求,并且相对于C语言编写的应用程序和库,无需使用不同的ABI。
我个人的认识:
Vala是对C语言的高级封装,拥有C#(其实和JAVA也基本相同啊)的形,C语言的魂。所谓高级、形,即是面向对象;而魂,则是说Vala编译器先把Vala代码转换成C代码,再编译成机器码。另外,官方介绍中提到了ABI这个概念,与常见的API是不同的。API(Application Program Interface)是对代码进行约束,比方说.JAVA文件的文件结构是什么样的,类对外提供了哪些方法供别人调用;ABI(Application Binary Interface)是对最终的执行码进行约束,比方说Java中class文件的文件结构,调用指令,或者说linux下可执行程序elf的文件内容约束。
- 在Windows下安装Vala
- 下载Vala IDE。最新版本为Valide 0.7.1。在安装Vala IDE的过程中,可以选择自动下载并安装Vala以及MinGW(minimalist GNU environment for Windows,MinGW提供了GNU C Compiler),也可以手动下载安装vala。
- 下载libgee。libgee提供了非常丰富的容器类和接口,比如ArrayList, HashSet, HashMap等等。下载后直接把包中的include、lib、bin、share目录解压到vala安装目录下,覆盖原有的include、lib、bin、share目录。
- 下载MinGW API for MS-Windows。下载后直接把包中的include、lib目录解压到vala安装目录下,覆盖原有的include,lib目录。如果不安装这个MinGW API,在编译使用到GTK的程序时,会报不能加载libcomdlg32的错误。
- HelloWorld!
public class Main{ public static int main (string[] args) { print("Hello World~~0.12/n"); return 0; } }
编译代码,运行程序:
valac HelloWorld.vala HelloWorld.exe
- 有趣的事情:
- 上述HelloWorld程序的vala文件名和类名并不一致!
- 有一个名叫vala的微博网站,不知道在国内的微博大战中能否有立足之地?
Vala学习笔记(一) - HelloWorld!相关推荐
- Spring MVC 学习笔记一 HelloWorld
Spring MVC 学习笔记一 HelloWorld Spring MVC 的使用可以按照以下步骤进行(使用Eclipse): 加入JAR包 在web.xml中配置DispatcherServlet ...
- MOOS学习笔记1——HelloWorld
MOOS学习笔记1--HelloWorld 例程 /* * @功能:通讯客户端的最简单程序,向MOOSDB发送名为"Greeting" * 数据"Hello", ...
- 【FastDDS学习笔记】HelloWorld示例程序编译和运行
目录 第一章:[FastDDS学习笔记]Ubuntu22上安装fastDDS环境 第二章:[FastDDS学习笔记]HelloWorld示例程序编译和运行 第三章:[FastDDS学习笔记]Fast- ...
- Cocos2d-x 学习笔记一 HelloWorld
最近刚刚开始学习cocos2d-x,本身自己就是小菜外加从未涉足过游戏引擎方面,而相关的C++版本学习教程并不多,自学起来很是费力啊! 首先是引擎相关的最基本概念,参见http://leeyin.it ...
- nodejs学习笔记-入门helloworld
2019独角兽企业重金招聘Python工程师标准>>> 什么是nodejs? Node.js是一个基于Chrome JavaScript运行时建立的平台, 用于方便地搭建响应速度快. ...
- python编译helloworld_python3学习笔记--001--python HelloWorld
python默认使用UTF-8编码 一个python3版本的HelloWorld代码如下: #!/usr/bin/env python print ('Hello World!') 如果此python ...
- Objective-C 学习笔记1 HelloWorld
1.打开xcode(4.2) 2.选择 Create a new Xcode project 3.选择 os x下的 application 4.选择右边的Command Line Tool 5.点[ ...
- Griffon学习笔记1 - HelloWorld
参考文章:[url]http://morry.iteye.com/blog/804768[/url] [img]http://dl.iteye.com/upload/attachment/348337 ...
- 不忘初心helloworld,IMX6入门学习笔记
本文按照时间学习的先后顺序,入门体验了知名半导体厂商NXP的著名处理器--IMX6. 无论你是否有基础,都能按照流程学会软件使用和交叉编译方法,老规矩:看不懂算我的. 了解开发板 官方资料链接: ht ...
最新文章
- Objective-C中的内存管理
- 【Android 插件化】Hook 插件化框架 ( 从源码角度分析加载资源流程 | Hook 点选择 | 资源冲突解决方案 )
- 为指针分配的内存太小
- (原創) 如何讓P7010外接螢幕支援1440x900(WXGA+)? (NB) (P7010)
- Ubuntu命令行下安装、卸载、管理软件包的方法
- java模拟器apk闪退_急,求帮助,eclipse生成apk安装以后闪退
- 用二维数组实现矩阵转置
- Java读取json文件,再生产新的json文件
- bShare一个强大的网页分享插件
- 基于微服务和Docker容器技术的PaaS云平台架构设计
- 如何让caffe读取多通道图片(=4)
- 面向对象思想,简单实例
- keil4 破解心得
- java 字节 占多少位_JAVA各种类型各占多少字节,多少位
- McAfee Epo
- python抢票脚本github_GitHub标星超12K,抢票神器大更新,支持候补!
- project 2016软件
- 论如何举办一个承载400人的比赛(XUPT新生赛承办小记)
- python欧拉螺线_基于菲涅耳积分的Python OpenDrive地图螺旋线/回旋线/欧拉螺旋线/Cornu螺旋线插值...
- Word 2010 找不到 Endnote选项