(抢分了!!!)有关包的调用问题(100分)

B

bbs-wqt

Unregistered / Unconfirmed
GUEST, unregistred user!
我已经做好了一个公共包P_Public.dpk(包含TDataModule,公共单元,基类窗体及一些Frame),包类型:Designtime and Runtime ,公共包P_Public.dpk编译没有问题!
再做第二个药库包P_Medical.dpk(它是一个药库管理模块),药库包也包含自己的TDataModule,公共单元以及从基类窗体继承的窗体,此模块下的单元文件,其他模块中不会调用,是相对独立的!但是在P_Medical.dpk 的Requires添加 P_Public.dpk包后,编辑通不过!错误提示如下:
[Error]Nerver-build package 'P_Medical' requires allways-build package 'P_Public'
不知道什么原因?请高手赐教!
 
project>>viwe source
看包的代碼
在一堆編譯指示的最下有這一項
。。。
{$IMPLICITBUILD OFF}
看看兩個包的是否一致。改成一樣。
 
看看包的Option的Package Control,改成Explicit rebuild
每次重新编译的时候,自动更新引用他的包
可能是没有更新基类包
 
是否有将包加到基础包中?
 
To lichdr:还是不行啊.
P_Medical 中是:
{ rtl,
teedb,
tee,
dxNavBarD6,
dxGDIPlusD6,
dxThemeD6,
EhLib,
FR6,
visualclx,
adortl,
dxcomnd6,
dxEdtrD6,
EQTLD6,
ECQDBCD6,
dxDBEdD6,
EQDBTLD6,
EQGridD6,
dxELibD6,
ip4000v6,
P_Public;
}
P_Public中是:
rtl,
vcl,
vcljpg,
dbrtl,
visualclx,
vcldb,
adortl,
dxcomnd6,
dxEdtrD6,
EQTLD6,
ECQDBCD6,
dxDBEdD6,
EQGridD6,
dxELibD6,
visualdbclx,
teedb,
tee,
EQDBTLD6,
vclx,
bdertl,
ip4000v6,
错误依旧,还是那个提示:
 
不是看requires,而是看上面的編譯指示。

package packageName;
{$R *.res}
{$ALIGN 8}
{$ASSERTIONS ON}
{$BOOLEVAL OFF}
{$DEBUGINFO ON}
{$EXTENDEDSYNTAX ON}
{$IMPORTEDDATA ON}
{$IOCHECKS ON}
{$LOCALSYMBOLS ON}
{$LONGSTRINGS ON}
{$OPENSTRINGS ON}
{$OPTIMIZATION ON}
{$OVERFLOWCHECKS OFF}
{$RANGECHECKS OFF}
{$REFERENCEINFO ON}
{$SAFEDIVIDE OFF}
{$STACKFRAMES OFF}
{$TYPEDADDRESS OFF}
{$VARSTRINGCHECKS ON}
{$WRITEABLECONST ON}
{$MINENUMSIZE 1}
{$IMAGEBASE $400000}
{$IMPLICITBUILD OFF} //這個開關兩個包是否一致
requires
vcl,
.............;
.................;
contains
............;
...........;
.............;
end.
 
to lichdr:
谢谢,我的机器编译通过了,但是怎么我同事的机器还是这个错误 。
到底 {$IMPLICITBUILD OFF} 起什么作用?能否详细说明一下。
 
这个编译指示好象就是在你编译这个包时,对requires进来的dcp去不去找最新的版本。
我也记不太清了。
你去查一下帮助吧。有说的。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
892
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
I
回复
0
查看
683
import
I
顶部