Delphi命令行编译器 - 使用与IDE相同的库路径

时间:2009-11-30 16:19:28

标签: delphi dcc32

有没有办法指示DCC32使用IDE使用的相同库路径(即在工具/选项/环境选项/ Delphi选项/库 - Win32中)?

由于显而易见的原因,我想要维护两个目录列表(一个在cfg文件中,一个在Delphi IDE中)。

5 个答案:

答案 0 :(得分:5)

如果您使用的是Delphi 2006或更高版本,则可以使用MSBuild而不是dcc32,MSBuild将使用与IDE相同的搜索路径

答案 1 :(得分:1)

您的项目目录中应该有一个名为yourprojectnamedpr.cfg的cfg文件,该文件实际上应该包含IDE中为该项目定义的所有目录。

答案 2 :(得分:1)

使用DCC32从命令行构建是很多的工作。 MSBuild要容易得多。库路径存储在注册表中,但位置取决于Delphi版本,例如(python代码):

if BDSVER == '5.0':
    CompanyText = 'Borland'
else:
    CompanyText = 'CodeGear'

key = _winreg.OpenKey(_winreg.HKEY_CURRENT_USER,'Software\\' + CompanyText + '\\BDS\\' + BDSVER + '\\Library')    
IncludePath = _winreg.QueryValueEx(key,'Search Path')[0]

# Then you must replace the environment vars $(BDS), $(BDSCOMMONDOR) etc
IncludePath = ReplaceEnvironVars(IncludePath)

还有很多事要做。您还必须获取搜索路径,并且必须从.dproj文件等获取条件定义

我在python中编写了一个完整的自动构建工具(对于BDSVER> = 5),当安装在XP x64上的Delphi 2007有一个损坏的MSBuild时。后来,事实证明,Delphi安装程序没有将某些required configuration files复制到正确的.NET文件夹中。将这些文件复制到正确的位置可以解决问题,现在我使用MSBuild。

答案 3 :(得分:1)

这对我有用:

call "C:\Program Files (x86)\Embarcadero\Studio\19.0\bin\rsvars.bat"
msbuild project.dproj

答案 4 :(得分:0)

如果您使用较旧的Delphi(例如Delphi 7),则必须将所有信息放在IDE中的“搜索路径”目录选项中。它将保存在.dof文件中。 .dof文件是项目的主要参考。

每次更改项目配置时,IDE也会自动更新.cfg。 .cfg指定命令行编译器的编译选项。 .cfg和.dof都必须受版本控制。

如果您不是从IDE编辑.dof文件,而是手动编辑它,则可以使用dof2cfg实用程序从.dof生成新的.cfg。你必须把它放在你的构建链中。