默认情况下,VI包含两种代码,用户编辑的图形代码以及LabVIEW用于运行图形代码的编译代码。编辑VI的图形代码时,LabVIEW自动重新编译VI,在G代码的编译代码中反应用户所做的改动。如VI调用的子VI有改动,LabVIEW会自动编译所有调用方VI。调用方VI会产生未保存改动。如调用方VI保存在源代码控制软件中,由于存在这些未保存改动,用户必须签出这些VI才能更新其子VI。

要避免该问题,LabVIEW允许用户创建仅包含源代码的VI,将VI的编译代码与图形代码分离保存。从VI中分离出编译代码后,调用修改过的子VI,LabVIEW仍会编译调用方VI。但是,LabVIEW将重新编译后的代码保存在编译目标缓存中,而不是随VI一起保存在源代码控制软件中。因为源代码控制软件中的VI没有变化,所以修改子VI时不用从源代码控制软件中签出子VI的调用方VI。

判断是否需要从VI中分离编译代码

从VI中分离编译代码有下列原因:

  • 简化源代码控制 - 从VI中分离编译代码,对一个VI的改动不会影响到该VI所在的层次结构或项目中的其他文件。这项功能使用户不必从源代码控制软件中签出所有和改动VI相关的文件,只需签出要修改的文件即可。
  • 将源代码控制中的VI升级为较新的LabVIEW版本 - 可将仅包含源代码的VI升级为较新版本,而不从源代码控制中签出这些VI。
  • 改进VI的加载时间 - LabVIEW加载仅包含源代码的VI所用的时间比普通VI更少。在VI层次结构或项目中,分离保存编译代码可最大化程度地利用该优点。
不是LabVIEW Run-Time引擎编译目标缓存创建源代码发布

对其他文件类型的源代码控制优化

也可在LabVIEW中创建仅包括源代码的项目库、LabVIEW类、XControl。与仅包含源代码的VI不同,LabVIEW不对上述文件类型进行编译代码分离保存,因为有的文件类型并没有编译代码。如为上述文件选择分离编译代码和源代码选项,LabVIEW将在目标缓存中保存上述文件的最新版本。如修改项目库、类或XControl的成员VI,LabVIEW将更新文件在目标缓存中的版本,而不会要求用户从源代码控制软件中签出文件。所以,仅包含源代码的库、类和Control与仅包含源代码的VI具有相同的优点。