我有一个包含多个软件包的项目组,其中一些需要在同一项目组中使用其他软件包。软件包并非都具有相同的软件包输出目录集。问题就从这里开始。根据我构建BPL的软件包的不同,一些时间会转到一个目录,而另一个时间会转到另一个目录。
我试图简化正在发生的事情。假设我们有两个包PackLib
和PackDependent
。 PackDependent
在其“要求”列表中具有PackLib
。 PackLib
的“包输出目录”是“ C:\ PackLib”,PackDependent
的目录是“ C:\ PackDependent”。这是问题所在:当我生成PackLib
时,bpl转到“ C:\ PackLib”-这就是我想要的。但是,当我构建PackDependent
时,也会构建PackLib
(可以),但是这次PackLib.bpl转到“ C:\ PackDependent”(预期:“ C:\ PackLib”)!
在我的上下文中,这会导致各种奇怪的行为,因为BPL不断生成到不同的目录,具体取决于我构建的软件包。
我是否缺少需要配置的内容?我希望我的软件包始终转到已配置的“软件包输出目录”!
最佳答案
可能发生的情况是由于另一个程序包而隐式构建了您的从属程序包。发生这种情况时,最外层软件包的编译器选项将用于所有正在构建的软件包。您可以执行的操作是,通过在每个软件包dpk文件中设置{$ IMPLICITBUILD OFF}伪指令,切换为始终显式构建软件包。只要您从依赖关系树的顶部向下显式构建所有软件包,就永远不会遇到错误或将软件包放置在错误的位置。
关于delphi - 软件包的BPL转到错误的软件包输出目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5155157/