• delphi 环境问题


    这个编译时的警告该如何理解?
    [Warning] Unit 'Unit101' implicitly imported into package 'Package202'
    ------解决方案--------------------
    [Warning] Unit 'Unit101' implicitly imported into package 'Package202'
    翻译为:
    警告  ‘package202’包隐式地引入了‘Unit101’单元

    这个警告的意思是:package202包引用了unit101单元,且编译后package202.bpl中将包含unit101单元,也就是说Unit101单元将被当做Package202的一个单元文件来编辑进Package202.pbl中
    这样操作存在的危险是:在同一进程中,在package202已被加载的情况下,如果其它包调用unit101(非package202中的unit101)时,将会发生冲突,因为unit101已经被编译到package202中。

    解决此问题的方法是:在package202工程中的require中添加unit101所在的dcp,这样,编译后的Package202.bpl中将不包含unit101,而只是对unit101的引用,将来在进程中Package202.pbl将与其它bpl共同调用同一个unit101,不会产生如上所述的冲突。

    这里有个我实际工作上的例子,弄了很久才明白。

    我要安装WinSkinD2010.bpl和NovaJsonRpc.bpl这两个包。

    然后NovaJsonRpc.bpl包又依赖于WinSkinD2010.bpl这个包。

    我首先安装WinSkinD2010.bpl。会提示一堆Unit 'XXX' implicitly imported into package 'XXXX'的警告。就是上文说的那个隐式引入的意思。先不管这个警告。

    然后安装NovaJsonRpc.bpl。会提示一堆Unit 'XXX' implicitly imported into package 'XXXX'的警告和一个Could not create output file的错误。导致致编译不成功。

    原因:编译NovaJsonRpc.bpl的时候,发现依赖WinSkinD2010.bpl,然后就会去路径里面找WinSkinD2010的DCP文件,如果路径里面找不到,就会去尝试编译WinSkinD2010.bpl文件,但此时我已经安装了WinSkinD2010.bpl。就会发生冲突,导致无法编译该文件,报Could not create output file的错误。

    解决方法就是在library paths里面添加WinSkinD2010.DCP文件的路径。

     ----------------------------------------

  • 相关阅读:
    UVa-1218
    Uva-1220
    UVa-10003
    UVa-1625
    UVa-11584
    UVa-12563
    UVa-12166 Equilibrium Mobile
    加油
    UVa-10129
    不再刷“水题”!
  • 原文地址:https://www.cnblogs.com/feiyunaima/p/6208386.html
Copyright © 2020-2023  润新知