这个编译时的警告该如何理解?
[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. [MongoDB]MongoDB与JAVA结合使用CRUD

    汇总: 1. [MongoDB]安装MongoDB2. [MongoDB]Mongo基本使用:3. [MongoDB]MongoDB的优缺点及与关系型数据库的比较4. [MongoDB]MongoDB ...

  2. 前端Js跨域方法汇总—剪不断,理还乱,是跨域

    1.通过jsonp跨域2.通过修改document.domain来跨子域(iframe)3.隐藏的iframe+window.name跨域4.iframe+跨文档消息传递(XDM)5.跨域资源共享 C ...

  3. 弹性布局flex-兼容问题

    这里弹性布局的用法就不说了 用过的都知道很方便 虽然现在弹性布局已经实现标准了 但是还是存在一些兼容问题 旧版本 (一些低版本的浏览器) display:-webkit-box; 新版本(目前的标准版 ...

  4. 在wex5平台grid里面的gridselect下拉不能显示汉字问题

    当grid里面有gridSelect组件的时候,gridSelect里面的bind-ref是对应的数据库存入字段(int类型),bind-labelRef是对应的计算字段(视图里面的),而option ...

  5. AlertDialog对话框简单案例

    什么是Dialog? Dialog类,是一切对话框的基类,需要注意的是,Dialog类虽然可以在界面上显示,但是并非继承于View类,而是直接从java.lang.Object开始构造出的.类似于Ac ...

  6. 《你不知道的JavaScript -- 上卷》笔记 --- 基于ES6新标准

    1.let A:let关键字:将变量绑定到所在的任意作用域 function process(){ //do something } //在这个块中定义的内容完事就可以销毁 { let someRea ...

  7. MySQL 存储过程基本函数

    字符串类 CHARSET(str) //返回字串字符集CONCAT (string2 [,... ]) //连接字串INSTR (string ,substring ) //返回substring首次 ...

  8. Java知识结构

  9. ZeroMQ接口函数之 :zmq_socket_monitor - 注册一个监控回调函数

    ZeroMQ 官方地址 :http://api.zeromq.org/4-2:zmq-socket-monitor zmq_socket_monitor(3) ØMQ Manual - ØMQ/4.1 ...

  10. java并发编程(十一)线程间的通信notify通知的遗漏

    notify通知的遗漏很容易理解,即threadA还没开始wait的时候,threadB已经notify了,这样,threadB通知是没有任何响应的,当threadB退出synchronized代码块 ...