可执行代码与源代码分离

我在书中和之前的文章中介绍到了LabVIEW的一个与其它语言不同之处:它把程序源代码和编译好的可执行代码存储在了同一个文件中。我一直觉得这并不是一个好的方法。对于普通LabVIEW用户,这也许不是一个严重问题,甚至很多人都不需要关心LabVIEW是怎么保存文件的,只要他的程序能正确运行就万事大吉。

但是,源代码与可执行代码混合存储的弊病还是给我的开发带来了一定影响。我开发的项目较大,有多个人同时参与开发,这样一来,同一个VI文件就会在不同的开发者之间传来传去。每个开发者有自己的喜好,有人有64-bit的LabVIEW进行开发,有人用32-bit的LabVIEW,有人用Windows,有人用Linux。这本来不应该是一个问题,LabVIEW支持跨平台,相同的源代码不加修改就可以在任何平台下运行。

问题在于不同平台下编译出来的可执行代码是不同的,我的程序复制到同事的电脑上,即便代码不做任何修改,VI也会被修改,因为VI中包含的可执行代码变了。这样,我就没法简单的判断一个VI是否被同事做了修改,还是仅仅编译后的代码变了,非常不利于程序源代码管理。

这个问题可以通过分离VI的源代码与可执行代码来解决,这是LabVIEW2010开始出现的功能。在VI的属性对话框中,有一个选项是“分离编译后代码与源代码”。若这一选项被选中,则VI中只保留程序的源代码,而编译生成的代码则被移出VI之外。

image

被分离出来的编译好的可执行代码又LabVIEW统一管理,在我的Windows 7 系统中,文件夹C:\Users\[user name]\Documents\LabVIEW Data\VIObjCache\[LabVIEW version number]\ 下有一个objFileDB.vidb 文件,这就是用来存储LabVIEW 程序所有可执行代码的数据库。

若程序会在不同平台下协同开发,或者程序会被发布到不同平台下去,都可以考虑采用可执行代码与源代码分离的策略,避免不必要的VI变动。

理论上,可执行代码与源代码分离开来,可以提高程序的加载速度:程序可以各取所需,只加载源代码或只加载可执行代码。不过我并没有太明显的感觉到速度的变化。

Advertisements

豆豆逛动物园

今天是春节过后第一个晴朗的星期天,我们决定带豆豆去动物园玩一玩。上了地铁10号线就发现车厢里全是小孩,一问都是去动物园的。看来小朋友们都憋坏了,难得一个好天气,不容错过。动物园里果然也是人山人海,我排队买票居然还排了二十分钟。

DSC03837

整个动物园里,豆豆最喜欢的是猴子。上海动物园的猴子种类还真不少,大大小小。其中一只猴子还抢了豆豆的橙子吃。

image

豆豆还去看了大象和长颈鹿

DSC03854

DSC03862

DSC03864

看完了长颈鹿,豆豆就困了。然后就趴在爸爸肩膀上睡着了。

豆豆睡了一个小时,然后又去看狮子、老虎。狮子老虎全是懒蛋,全都在睡觉,一动不动,真没意思。

接下来豆豆又去看了大熊猫、小熊猫、各种大鸟。然后就回家了。豆豆今天玩的好累,到了家里一改好动性格,老老实实坐在床上。不过吃东西的力气还是有的,豆豆的晚餐水果是火龙果。

DSC03888

DSC03886

豆豆15个月

豆豆这个月学习说话的速度明显加快了,现在不但把家里四个人的称呼都学会了,还学会了两个非常有用的动词:“吃”和“抱”。豆豆不愧是馋豆,看见认识的食品,立刻就会兴奋的叫“吃,吃”。前两天看见我的时候直接就说了个句子:“爸爸,抱抱”。

豆豆可以直接从坐这的状态直接站起来了,算是正式会走路了。

上海整个二月都在下雨,进入三月也不见转好,现在只要没有雨就算好天气了。我每个周末都要抽出一天带豆豆出去玩,豆豆是野孩子,只要不在家里,去哪都很开心。

上个周末回张江了,这是在家门口的紫薇公园里:

 

DSC03709

现在豆豆走路仍然跌跌撞撞,离不开学步带的保护。豆豆在公园里走着走着,突然发现草坪里躺着一辆小滑车,立刻过去扶起来研究研究。豆豆天性就对各种有轮子的东西感兴趣。小滑车是属于身后那个红衣服小姐姐的,她正在一旁疯跑呢。后来一回头,看见自己的爱车被豆豆捡去了,立刻气势汹汹冲了过来。小姐姐比豆豆大了十个月,身高比俺们差了一大截,但是可凶呢,一把就夺过自己的小车。豆豆也不甘示弱,冲着小姐姐啊啊大吼。幸好奶奶急中生智,掏出一个漂亮的公交卡,吸引走了豆豆注意力,才化解一场战争。

DSC03742

这个周末带豆豆出远门,去了滴水湖。豆豆听说要出去坐嘀嘀,立刻兴奋了。挂着一脸的早饭,蹦起来就要出发。

DSC03765

早上出发的时候天气非常恶劣,到达滴水湖的时候甚至有点开始飘雨,结果忘记给豆豆拍照了。

中午就在滴水湖边上吃的。这里游客稀少,饭店也少,我们抱着死沉的豆豆走了好远才看到一家饭馆。但幸运的是,吃过午饭,天气居然转好了。等我们驱车到了滴水湖东面的观海公园,阳光已经穿透稀薄的云层照在了海岸上。豆豆刚学会走路,一旦有机会自己走,就千方百计想摆脱大人的控制。我有时候不得不抱起他,免得他乱跑。他也会反抗,把两只手朝上一身,拼命扭动身体,有时候还真包不住他。

DSC03800

豆豆这张一本正经的照片,看上去很像个大孩子:

DSC03805DSC03808

DSC03814

这时候早已过了豆豆午睡的时间了,我把车停在了海堤上,豆豆妈在车里哄豆豆睡觉,而我则溜达到堤岸下面去看看。上海虽然临海,居然连一处沙滩都没有,只看得到碎石和烂泥。

DSC03824