zoukankan      html  css  js  c++  java
  • 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文件的路径。

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

  • 相关阅读:
    228. Summary Ranges
    227. Basic Calculator II
    224. Basic Calculator
    222. Count Complete Tree Nodes
    223. Rectangle Area
    221. Maximal Square
    220. Contains Duplicate III
    219. Contains Duplicate II
    217. Contains Duplicate
    Java编程思想 4th 第4章 控制执行流程
  • 原文地址:https://www.cnblogs.com/feiyunaima/p/6208386.html
Copyright © 2011-2022 走看看