[Error] BaseForm1.dpk(59): Package 'BaseOperation' already contains unit 'USQLTemplate'
经常提示上面错误,说是另一个包已经包含了单元某某,可是去另一个包看确实没有相关单元,搜一个单元名连个毛也没搜到,这是为什么呢,搞得头都大了,请问各位有遇见的没有。先谢过

解决方案 »

  1.   

    记事本打开DPK档看看里面是否contains这个单元
      

  2.   

    很明显啦,不同的包引用了相同的单元。在USES仔细找找'USQLTemplate'
      

  3.   

    用grep搜索一下BaseForm1.dpk所有相关的pas源程序'USQLTemplate'这个字符串,很可能是间接引用了这个单元了。
      

  4.   

    把USQLTemplate所在的dpk 名称.dcp  放到require中就可以了。
      

  5.   

    问题找到了,是之前在BaseOperation包里加了一个unit,其中有引用usqltemplate的,也没有require真正包含usqltemplate的单元的baseform1包的dcp。但编译通过且生成了自己包的dcp。然后又发现这个新加的单元有问题,又去掉了,但是没有重新编译,dcp还是旧的。所以在编译真正包含usqltemplate的单元的baseform1包时呢它发现Baseoperation包生成的dcp中有引用usqltemplate单元的,而Baseoperation包又没有require自己的dcp。觉得版权受到侵犯,就报错。
    希望以大伙有帮助。
    谢谢大家的建议。