我正在使用命令行编译器进行构建。我看到的一个问题是,那里提到的路径似乎需要是文件名的简短版本,以便它们不包含任何空格。即使我已经使用了一段时间,我对此也不太了解。
我最近升级到d2009,然后问题就开始了。
有没有办法缩短路径?
我应该说我现在不急于改变使用MS Build工具。我只是想建立一个我的应用程序的旧副本&回到其他工作。
以下是dcc32.cfg
,-I
,-U
和-O
参数的-R
文件中使用的路径:
$(BDS)\LIB;$(BDS)\Imports;$(BDS)\Lib\Indy10;C:\PROGRA~1\Borland\BDS\4.0\RAVERE~1\Lib;c:\prj\lib\lib2002;C:\DOCUME~1\ALLUSE~1\DOCUME~1\RADSTU~1\5.0\Bpl;c:\DOCUME~1\mike\MYDOCU~1\BORLAN~1\bpl;C:\Prj\Lib\LOCKBO~1\source;C:\Prj\Lib\MyComp;C:\Prj\Lib\ABBREV~1\source;C:\Prj\Lib\ZLib;C:\Prj\Lib\MinMod;C:\Prj\Lib\HELPMA~1;C:\Prj\Lib\DXGETT~1;c:\windows\system32;c:\prj\lib\xpburn;C:\Prj\Lib\WININE~1;C:\Prj\Lib\regexpr\Source;C:\Prj\Lib\VCARDR~1;C:\PROGRA~1\Raize\RC4\Lib\BDS2006;C:\Prj\Lib\jcl\lib\d10;C:\Prj\Lib\jcl\source;C:\Prj\Lib\jvcl\lib\D10;C:\Prj\Lib\jvcl\common;C:\Prj\Lib\jvcl\RESOUR~1;C:\Prj\Lib\ProE6\Delphi;C:\Prj\Lib\FastMM4;C:\Prj\Lib\OPENOF~1;C:\Prj\Lib\DEVELO~1\Library\Delphi11;C:\Prj\Lib\DEVELO~1\EX38D9~1\Sources;C:\Prj\Lib\DEVELO~1\EXBD88~1\Sources;C:\Prj\Lib\DEVELO~1\XPTHEM~1\Sources;C:\Prj\Lib\DEVELO~1\EX2EBC~1\Sources;C:\Prj\Lib\DEVELO~1\EXC5FB~1\Sources;C:\Prj\Lib\DEVELO~1\EX7C7C~1\Sources;C:\Prj\Lib\DEVELO~1\EXPRES~3\Sources;C:\Prj\Lib\DEVELO~1\EXPRES~4\Sources;C:\Prj\Lib\DEVELO~1\EXC73B~1\Sources;C:\Prj\Lib\DEVELO~1\EX7165~1\Sources;C:\Prj\Lib\DEVELO~1\EXPRES~2\Sources;C:\Prj\Lib\DEVELO~1\EXPRES~1\Sources;C:\Prj\Lib\DEVELO~1\EX749C~1\Sources;C:\Prj\Lib\DEVELO~1\EX0A1A~1\Sources;C:\Prj\Lib\Mad\madBasic\BDS4;C:\Prj\Lib\Mad\MADDIS~1\BDS4;C:\Prj\Lib\Mad\MADEXC~1\BDS4;C:\Prj\Lib\Mad\MADKER~1\BDS4;C:\Prj\Lib\Mad\MADSEC~1\BDS4;C:\Prj\Lib\Mad\madShell\BDS4;C:\Prj\Lib\Mad\madShell\DeXter;C:\Prj\Lib\Mad\madExcept\..\Plugins;
我已经从IDE的路径中复制了它,就像我在路径中所做的那样,并使用程序来缩短路径名称。
虽然该路径中没有空格,但仍无法在IdCoder.dcu
找到indy的C:\Program Files\CodeGear\RAD Studio\5.0\lib\Indy10
根据d2007环境变量,$(BDS)
显然会扩展为c:\program files\codegear\rad studio\5.0
IDE正在考虑此库路径有效。
为什么会这样?我打赌这是一个我没想过的简单错误!
感谢您的帮助!
答案 0 :(得分:3)
您可以尝试将路径放在引号中,这是在Windows中处理带空格的路径/文件名的标准方法,尽管我从未在Delphi DCU中尝试过。
所以,而不是
$(BDS)\Lib\Indy10
试
"$(BDS)\Lib\Indy10"
您也可以尝试
"C:\Program Files\CodeGear\RAD Studio\5.0\lib\Indy10"
检查环境变量是否正确。
答案 1 :(得分:3)
虽然.cfg文件在Delphi 2007命令行编译器中仍然有用,但您应该使用MSBuild来编译项目。 IDE不再使用CFG文件。您设置设计时的任何编译器选项都不会写入.cfg文件。使用MSBuild并不比使用.cfg更难。如果您希望它更灵活,因为您可以更改实际的构建过程。
msbuild YourProject.dproj
答案 2 :(得分:3)
当您进行编译或构建时,Delphi实际上会为您提供输出选项卡中所需的命令行。
G:
然后
cd \Apps\MyProject
答案 3 :(得分:1)
从命令行编译程序时是否设置了$(BDS)环境变量?如果没有,那可能就是问题所在。
在包含空格的路径周围放置引号可能会解决空格问题。这对我有用:
-U“C:\库的路径\第一个库; C:\库的路径\第二个库; C:\库的路径\第三个库”
答案 4 :(得分:1)
检查当前文件夹中是否有 applicationname .cfg文件。 Dcc32将首先尝试从该文件中读取配置。仅当文件不存在时才会从dcc32.cfg中读取。