我有一个包含多个包的项目组,其中一些包需要在同一项目组中的其他包。这些包并不都具有相同的包输出目录集。这就是问题开始的地方。根据我构建BPL的包,需要花一些时间到一个目录,另一次到另一个目录。
我试着简化发生的事情。假设我们有两个包PackLib
和PackDependent
。 PackDependent
在“需求”列表中包含PackLib
。 PackLib
的“包输出目录”是“C:\ PackLib”,PackDependent
的目录是“C:\ PackDependent”。问题出在这里:当我构建PackLib
然后bpl转到“C:\ PackLib” - 这就是我想要的。但是当我构建PackDependent
时,也构建了PackLib
(这没关系),但这次PackLib.bpl转到“C:\ PackDependent”(预期:“C:\ PackLib”)!
在我的上下文中,这会导致各种奇怪的行为,因为BPL会不断生成到不同的目录,具体取决于我构建的包。
我错过了我需要配置的东西吗?我希望我的包总是去配置的“包输出目录”!
答案 0 :(得分:6)
可能发生的情况是,您的依赖包是由于另一个包而隐式构建的。当发生这种情况时,最外层程序包的编译器选项将用于所有正在构建的程序包。你可以做的是通过在每个包dpk文件中设置{$ IMPLICITBUILD OFF}指令来切换到始终显式构建包。只要您从依赖树的顶部显式构建所有包,就不应该遇到错误或将包放在错误的位置。