C O M P IL E 命 令

C O M P IL E 命 令 - 图1C O M P IL E 命 令 - 图2编译一个或多个文件 并为每一个源文件创建一个目标文件

语 法

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

[AS nCodePage ]

参 数 描 述

CLASSLIB

C O M P IL E 命 令 - 图3C O M P IL E 命 令 - 图4C O M P IL E 命 令 - 图5指 定 要 编 译 的 文 件 是 一 个 可 视 化 类 库 (.vcx) 可 视 化 类 库 的 源 代 码 是 存 储 在可 视 化 类 库 表 中 的 备 注 字 段 中 COMPILE CLASSLIB 将 这 些 备 注 字 段 编 译到 存 储 在 其 他 备 注 字 段 的 对 象 代 码 中

LABEL

C O M P IL E 命 令 - 图6指 定 要 编 译 的 文 件 是 一 个 标 签 定 义 文 件 (.lbx) 在 一 个 附 加 的 备 注 字 段 中 编

C O M P IL E 命 令 - 图7译 并 存 储 与 标 签 定 义 文 件 一 起 保 存 的 数 据 环 境 源 代 码

REPORT

C O M P IL E 命 令 - 图8C O M P IL E 命 令 - 图9指 定 要 编 译 的 文 件 是 一 个 报 表 定 义 文 件 (.frx) 在 一 个 附 加 的 备 注 字 段 中 编 译并 存 储 与 报 表 定 义 文 件 一 起 保 存 的 数 据 环 境 源 代 码

FileName | FileSkeleton

C O M P IL E 命 令 - 图10C O M P IL E 命 令 - 图11C O M P IL E 命 令 - 图12C O M P IL E 命 令 - 图13C O M P IL E 命 令 - 图14指 定 一 个 要 编 译 的 文 件 或 编 译 一 组 与 文 件 梗 概 相 匹 配 的 文 件 该 文 件 梗 概 可包 含 通 配 符 如 * 和 ? 例 如 要 编 译 当 前 目 录 里 所 有 带 .PRG 扩 展 名 的 程 序文 件 可 执 行 COMPILE *.PRG

?

C O M P IL E 命 令 - 图15C O M P IL E 命 令 - 图16C O M P IL E 命 令 - 图17C O M P IL E 命 令 - 图18显 示 编 译 对 话 框 允 许 选 择 要 编 译 的 文 件

ENCRYPT

C O M P IL E 命 令 - 图19C O M P IL E 命 令 - 图20C O M P IL E 命 令 - 图21C O M P IL E 命 令 - 图22C O M P IL E 命 令 - 图23C O M P IL E 命 令 - 图24加 密 要 编 译 的 V isual FoxPro 程 序 不 能 使 用 CLASSLIB LABEL 和REPORT 关 键 字 这 可 以 防 止 任 何 对 原 始 源 程 序 的 访 问 为 保 护 源 代 码 在编 译 要 发 布 的 程 序 时 经 常 需 要 包 含 这 个 选 项

NODEBUG

C O M P IL E 命 令 - 图25C O M P IL E 命 令 - 图26C O M P IL E 命 令 - 图27C O M P IL E 命 令 - 图28使编译文件每行缩小 2 字节 编译文件中的这两个字节是对源文件中对应行的引用删除这些字节不影响程序的性能 但是可缩小编译文件大小并节省磁盘空间

C O M P IL E 命 令 - 图29C O M P IL E 命 令 - 图30当包含 NODEBUG 选项时 不能在跟踪窗口中显示程序的执行情况 也不能使用

C O M P IL E 命 令 - 图31MESSAGE(1) 返回产生错误的程序行的源代码

AS nCodePage

C O M P IL E 命 令 - 图32C O M P IL E 命 令 - 图33指 定 编 译 程 序 的 代 码 页 不 能 使 用 CLASSLIB LABEL 和 REPORT 关 键

C O M P IL E 命 令 - 图34字 该 子 句 指 定 的 编 译 代 码 页 将 改 写 由 SET CPCOMPILE 指 定 的 全 局 编 译 代

C O M P IL E 命 令 - 图35码 页

说 明

C O M P IL E 命 令 - 图36C O M P IL E 命 令 - 图37C O M P IL E 命 令 - 图38C O M P IL E 命 令 - 图39C O M P IL E 命 令 - 图40C O M P IL E 命 令 - 图41C O M P IL E 命 令 - 图42Visual FoxPro 只执行目标文件 因此若源文件尚未编译 则在运行程序时会自动编译源文件 而源文件保持不变 创建的编译文件与源文件的基本名相同 但扩展名不 同 下表列出了每种文件类型的源文件和编译文件扩展名

文 件 类 型 源 文 件 扩 展 名 编 译 文 件 扩 展 名

程序文件

.prg

.fxp

表单代码

.spr

.spx

菜单代码

.mpr

.mpx

查询

.qpr

.qpx

格式

.fmt

.prx

C O M P IL E 命 令 - 图43C O M P IL E 命 令 - 图44C O M P IL E 命 令 - 图45C O M P IL E 命 令 - 图46C O M P IL E 命 令 - 图47C O M P IL E 命 令 - 图48C O M P IL E 命 令 - 图49C O M P IL E 命 令 - 图50编译器检查源文件中的任何语法错误 若 SET LOGERRORS 是 ON 则编译文件时编译错误信息被保存到一个文本文件中 错误日志文件与编译文件的基本名相同 但扩展名为 .ERR 若 SET LOGERRORS 是 OFF 则不创建错误日志文件

请 参 阅

BUILD APP, BUILD PROJECT, #DEFINE...#UNDEF, #IF...#ENDIF, #IFDEF | #IFNDEF...#ENDIF, #INCLUDE, MODIFY COMMAND, MODIFY PROJECT, SET CPCOMPILE, SET LOGERRORS