这个编译时的警告该如何理解?
[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文件的路径。

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

delphi 环境问题的更多相关文章

  1. 学习笔记:7z在delphi的应用

    最近做个发邮件的功能,需要将日志文件通过邮件发送回来用于分析,但是日志文件可能会超级大,测算下来一天可能会有800M的大小.所以压缩是不可避免了,delphi中的默认压缩算法整了半天不太好使,就看了看 ...

  2. delphi连接sql存储过程

    针对返回结果为参数的 一. 先建立自己的存储过程 ALTER PROCEDURE [dbo].[REName] ) AS BEGIN select ROW_NUMBER() over(order by ...

  3. delphi 2010与delphi XE破解版的冲突

    在系统中同时安装了Dephi 2010LITE版与Delphi XE lite后,总是会有一个有问题 是因为两者都是读取C:\ProgramData\Embarcadero目录下的license文件, ...

  4. [Delphi] Delphi版本号对照

    VER300    Delphi Seattle / C++Builder Seattle    23    230    (Delphi:Win32/Win64/OSX/iOS32/iOS64/An ...

  5. delphi tidhttp 超时设置无效的解决方法

    现在delphi都发布到xe8了,tidhttp还有缺陷,那就是超时设置在没有网络或者连不上服务器的时候是无效的,不管你设置为多少都要10-20秒.connectTimeout和readTimeout ...

  6. Delphi Code Editor 之 编辑器选项

    Delphi Code Editor 之 编辑器选项 可从Code Editor的右键菜单中选择“Properties”菜单项来查看编辑器选项.也可以从主菜单[Tools | Editor Optio ...

  7. Delphi使用ADO进行数据库编程

    Delphi是一个可视化的编程工具,ADO编程也是这样,所以话不多言,直接通过代码.截图和语言来说明. 我的数据库是Oracle,为了测试,先建一个表:create table practice(un ...

  8. 怎么使用Delphi获取当前的时间,精确到毫秒

    先介绍一个可能比较常用的方法,获取当前时间 var datetime: string; begin datetime:= FormatDateTime('yyyy-mm-dd hh:mm:ss', N ...

  9. Delphi在创建和使用DLL的时候如果使用到string,请引入ShareMem单元

    当使用了长字符串类型的参数.变量时,如string,要引用ShareMem. 虽然Delphi中的string功能很强大,但若是您编写的Dll文件要供其它编程语言调用时,最好使用PChar类型.如果您 ...

随机推荐

  1. AgileEAS.NET SOA 中间件平台5.2版本下载、配置学习(四):开源的Silverlight运行容器的编译、配置

    一.前言 AgileEAS.NET SOA 中间件平台是一款基于基于敏捷并行开发思想和Microsoft .Net构件(组件)开发技术而构建的一个快速开发应用平台.用于帮助中小型软件企业建立一条适合市 ...

  2. Excel word “由于本机的限制_该操作已被取消_请与管理员联系”的已生效解决办法 (转 )

    正常解决方法: 1.打开开始菜单,在运行里输入regedit,回车 2.在注册表中,导航到HKEY_CURRENT_USER\Software\Classes\.html 项 3.在默认项上点右键选择 ...

  3. POJ 2774 Long Long Message 后缀数组

    Long Long Message   Description The little cat is majoring in physics in the capital of Byterland. A ...

  4. Who's in the Middle[HDU1157]

    Who's in the Middle Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Othe ...

  5. Object-C 1.0 第二章

    1.  输出obc #import <Foundation/Foundation.h> int main(int argc,const char *argv[]) { NSLog(@&qu ...

  6. python练习

    创建一个简单的姓名和编号系统,让用户输入一组人的姓名和编号,实现提供按照编号或姓名排序输出的功能. nums = [] names = [] Afternums = [] Afternames = [ ...

  7. 在list_*页面显示出一级栏目下的所有二级栏目

    <ul class="nav nav-pills nav-stacked"> {dede:channelartlist typeid='1,1'} <div cl ...

  8. AFNetworking3.1.0检查网络状态

    我们知道AFNetworking3.0版本中,弃用了AFHTTPRequestOperationManager.那么进行网络判断的时候就需要使用 AFNetworkReachabilityManage ...

  9. C fwrite

    功能:向文件读入写入一个数据块. 用法:fwrite(const void *buffer,size_t size,size_t count,FILE *stream); (1)buffer:是一个指 ...

  10. SQL常用字段类型

    中文常用字段类型 1.   名称类    nvarchar(10) 2.   数量       int 3.   时间      date 4.   货币      money 5.   编号     ...