compile 命令

请参阅

编译一个或多个源文件,并为每一个源文件创建一个目标文件。

语法

COMPILE [CLASSLIB | LABEL | REPORT] FileName | FileSkeleton | ?
[ENCRYPT] [NODEBUG]
[AS nCodePage]

参数

CLASSLIB

指定要编译的文件是一个可视化类库 (.vcx)。可视化类库的源代码是存储在可视化类库表中的备注字段中。COMPILE CLASSLIB 将这些备注字段编译到存储在其他备注字段的对象代码中。

LABEL

指定要编译的文件是一个标签定义文件 (.lbx)。在一个附加的备注字段中编译并存储与标签定义文件一起保存的数据环境源代码。

REPORT

指定要编译的文件是一个报表定义文件 (.frx)。在一个附加的备注字段中编译并存储与报表定义文件一起保存的数据环境源代码。

FileName | FileSkeleton

指定一个要编译的文件或编译一组与文件梗概相匹配的文件。该文件梗概可包含通配符如 * 和 ?。例如,要编译当前目录里所有带 .PRG 扩展名的程序文件,可执行 COMPILE *.PRG。

?

显示“编译”对话框,允许选择要编译的文件。

ENCRYPT

加密要编译的 Visual FoxPro 程序。不能使用 CLASSLIB、LABEL 和REPORT 关键字。这可以防止任何对原始源程序的访问。为保护源代码,在编译要发布的程序时经常需要包含这个选项。

NODEBUG

使编译文件每行缩小 2 字节。编译文件中的这两个字节是对源文件中对应行的引用。删除这些字节不影响程序的性能,但是可缩小编译文件大小并节省磁盘空间。

当包含 NODEBUG 选项时,不能在跟踪窗口中显示程序的执行情况,也不能使用MESSAGE(1) 返回产生错误的程序行的源代码。

AS nCodePage

指定编译程序的代码页。不能使用 CLASSLIB、LABEL 和 REPORT 关键字。该子句指定的编译代码页将改写由 SET CPCOMPILE指定的全局编译代码页。

说明

Visual FoxPro 只执行目标文件。因此若源文件尚未编译,则在运行程序时会自动编译源文件,而源文件保持不变。创建的编译文件与源文件的基本名相同,但扩展名不同。下表列出了每种文件类型的源文件和编译文件扩展名。

文件类型 源文件扩展名 编译文件扩展名
程序文件 PRG FXP
表单代码 SPR SPX
菜单代码 MPR MPX
查询 QPR QPX
格式 FMT PRX

编译器检查源文件中的任何语法错误。若 SET LOGERRORS 是 ON,则编译文件时,编译错误信息被保存到一个文本文件中。错误日志文件与编译文件的基本名相同,但扩展名为 .ERR;若 SET LOGERRORS 是 OFF,则不创建错误日志文件。