contains子句指明了绑定到包中的单元。不要在contains
避免使用多余的源代码
包不能出现在其它包的contains子句中,也不能出现在单元的直接在包的contains子句中所包含的单元,以及(间接的)这些单元所使用的单元,在编译时都被绑定到包中。一个包所包含的任何单元(直接的或间接的),不能被它的一个单元不能被包含(直接或间接)在同一个程序所需要的多个包中。Compiling packages(编译包)
Compiling packages: Overview(概述)
下面的表格列出了成功编译一个包时所产生的文件
- 138 -
.dpu(Linux)文件调入引用单元。 B,那么B不能需要uses子句中。requires
requiresA;若A
B,而B
.dpk文子句中。若在需要子句中包含文件扩展名。
子句中所需要的包再包含。
Libraries and packages
文件扩展名
dcp 内容 一个二进制映像文件,它包含一个package header和包中所有的dcu(Windows)
或dpu(Linux)构成的concatenation。每个包文件创建一个dcp文件,它的
文件名和dpk源文件名相同。
和包的一个单元对应的二进制映像文件。若需要的话,为每个单元文件创建
一个dcu或dpu文件。
运行时包。它是一个特殊的共享库。它的文件名和dpk源文件名相同。 dcu (Windows) dpu (Linux) .bpl on Windows
bpl<package>.so on Linux
Package-spcific compiler directives(库编译器指示字) 下面的表格,列出了能入到源代码中的适用于包的编译器指示字。
指示字
{$IMPLICITBUILD OFF}
{$G?} or {$IMPORTEDDATA OFF} 作用 防止一个包在以后被重新编译。用于提供低级功能、不会经常变化,或源代码不会被发布的.dpk文件。 Disables creation of imported data references. This directive increases
memory-access efficiency, but prevents the unit where it occurs from
referencing variables in other packages.
Packages unit weakly.
Prevents unit from being placed in a package.
Compiles the package for installation in the IDE. (Put in .dpk file.)
Compiles the package as runtime only. (Put in .dpk file.) {$WEAKPACKAGEUNIT ON} {$DENYPACKAGEUNIT ON} {$DESIGNONLY ON} {$RUNONLY ON}
在源文件中包含{$DENYPACKAGEUNIT ON},能防止单元文件被编译到包中。包含{$G?}或{$IMPORTEDDATA OFF}能防止一个包和其它包用在同一个程序中。
如果合适,其它编译器指示字也可以包含在包源代码中。
Package-spcific command-line compiler switches(库命令行编译开关)
下面是适合于包的命令行编译开关。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-23665-104.html