如何将32位和64位DCU编译到单独的目录中?

时间:2011-12-07 14:33:25

标签: delphi 32bit-64bit delphi-xe2

我正在尝试维护一个存储库,我的代码库中的大部分内容都是源代码,但我们有一些QuickPDF库,它是一堆预编译的DCU。我想以某种方式将它们置于版本控制中,但我不想为win64设置另一个选项,在将剩下的万亿LOC代码库转换为win64之前我将忘记这一点。

我在想的只是(和quickPDF只是一个例子,除了不幸的预编译之外,这个库没有什么特别之处)

  • ctrls监视\ quickpdf \ QuickPDF.pas
  • ctrls监视\ quickpdf \ WIN32 [*。DCU]
  • ctrls监视\ quickpdf \ Win64的[*。DCU]

从程序文件中的文件夹外观来看,Embarcadero与VCL类似。甚至还有一些预编译的东西,比如VCL.Imaging.JPEG.pas。

我该如何做同样的事情?我是否需要指定win32和win64文件夹,或者在某个地方我可以使用哪些魔法?

2 个答案:

答案 0 :(得分:12)

您正在谈论的魔力可以在.dproj文件中看到普通的XE2 VCL Forms应用程序。关键因素是这些变量:

  • $(Platform),可以是Windows上的Win32或Win64。
  • $(Config),通常是Debug或Release。

然后在.dproj文件中,以下XML执行魔术:

<PropertyGroup Condition="'$(Base)'!=''">
    <DCC_DcuOutput>.\$(Platform)\$(Config)</DCC_DcuOutput>
    <DCC_ExeOutput>.\$(Platform)\$(Config)</DCC_ExeOutput>
</PropertyGroup>

您可以将$(Platform)$(Config)变量与任何项目选项一起使用。因此,您只需要使用这些变量来设置需要为编译器设置的任何选项,以便找到预编译的DCU。

据我所知,您需要设置的选项是搜索路径。虽然我承认对搜索路径的工作方式感到朦胧,因为我个人从不依赖搜索路径,并且总是在我的项目中明确包含所有源文件。在您的示例中,您可以将ctrls\quickpdf\($Platform)添加到搜索路径中。

答案 1 :(得分:1)

这很简单,添加:

  • .. \ ctrls监视\ quickpdf \ $(平台)

到您的项目搜索路径

虽然当你发现它确实有效时你会感到惊讶,因为它在IDE中显示为灰色。

Project Options - Search Path