2008-11-14 4 views
4

빌드에 명령 줄 컴파일러를 사용하고 있습니다. 내가 보는 한가지 문제는 거기에 언급 된 경로는 파일 이름의 짧은 버전이어야하므로 공백을 포함하지 않아야한다는 것입니다. 나는 이것을 얼마 동안 사용 했음에도 불구하고 이것에 대해 많이 모른다.델파이 2007 명령 줄 컴파일러 dcc32.cfg 문제

최근에 d2009로 업그레이드하여 문제가 시작되었습니다.

경로를 줄이는 방법이 있습니까?

나는이 시점에서 MS Build 도구를 사용하기를 바라고 싶지 않다. 난 그냥 내 애플 &의 이전 복사본을 구축하고 다른 작품으로 돌아가고 싶습니다. 여기

-I, -U, -O-R 매개 변수에 대한 dcc32.cfg 파일에 사용되는 경로입니다 : 나는 IDE의 경로에서 그것을 복사 한

$(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; 

내가 경로에서 수행하고 사용하고 같은 경로 이름을 줄이십시오.

그 경로에 공백이 없지만, 여전히 인디의 IdCoder.dcuC:\Program Files\CodeGear\RAD Studio\5.0\lib\Indy10

에서이 D2007 환경 변수에 따르면, $(BDS) 분명히 c:\program files\codegear\rad studio\5.0

IDE는로 확장 할 찾을 수는이 라이브러리를 고려하고있다 올바른 경로.

왜 이런 일이 발생합니까? 나는 그것이 생각하지 않은 간단한 실수라고 내기!

도움 주셔서 감사합니다.

+0

dcc32.cfg의 -U 부분을 모두 표시하십시오. – gabr

답변

3

경로를 따옴표로 묶으십시오. Windows에서 공백이있는 경로/파일 이름을 처리하는 표준 방법입니다.하지만 델파이 DCU에서는 시도하지 않았습니다.

그래서,

$(BDS)\Lib\Indy10 

대신

환경 변수가 올 경우도

"C:\Program Files\CodeGear\RAD Studio\5.0\lib\Indy10" 

확인을 시도 할 수

"$(BDS)\Lib\Indy10" 

을 시도합니다.

+0

고맙지 만 문제가 해결되지는 않습니다. –

+0

아마도 블라디미르의 예와 같이 전체 디렉토리 목록을 따옴표로 묶어야하지만 문제가 실제로 어딘가에있는 것 같습니다 ... – schnaader

+0

따옴표가 붙은 후 어느 시점부터 작업을 시작했습니다. 그 밖의 무엇이 잘못되었는지는 모르지만 지금은 효과가 있습니다. 고맙습니다! –

1

명령 줄에서 프로그램을 컴파일 할 때 $ (BDS) 환경 변수가 설정되어 있습니까? 그렇지 않은 경우 문제가 될 수 있습니다.

공백이있는 경로를 따옴표로 묶으면 공백 문제가 해결 될 가능성이 높습니다. 이것은 나를 위해 일했습니다

-U "C : 우선 라이브러리 \ 라이브러리 \ 경로; C : 두 번째 라이브러리 \ 라이브러리 \ 경로; C : 제 라이브러리 \ 라이브러리 \ 경로"

+0

블라디미르 감사합니다! –

1

확인하면 경우 현재 폴더에 applicationname .cfg 파일이 있어야합니다. Dcc32는 먼저 해당 파일에서 구성을 읽으려고 시도합니다. 파일이 존재하지 않는 경우에만 dcc32.cfg에서 읽습니다.

+0

감사합니다. gabr - 나는 그것을 몰랐습니다! –

+1

사실이 아닙니다. dcc32.cfg는 여전히 읽혀집니다. 차이점은 우선 순위를 취합니다 ... 두 cfg 파일에서 옵션을 설정하면 applicationname.cfg가 dcc32.cfg 설정보다 우선합니다. 옵션에 여러 값 (예 : 검색 경로)이 있으면 applicationname.cfg의 경로가 먼저 검색됩니다. 비슷한 방법으로 명령 줄 옵션이 applicationname.cfg 옵션보다 우선합니다. 또한 명령 행 옵션 --no-config를 사용하여 cfg 파일을 모두 무시할 수 있습니다. –

+0

@CraigYoung, 고마워, 고마워. – gabr

3

.cfg 파일은 여전히 ​​Delphi 2007 명령 줄 컴파일러에서 작동하지만 실제로 프로젝트를 컴파일하려면 MSBuild를 사용해야합니다. CFG 파일은 IDE에서 더 이상 사용하지 않습니다. 디자인 타임을 설정하는 컴파일러 옵션은 .cfg 파일에 기록되지 않습니다. MSBuild를 사용하면 .cfg를 사용하는 것이 어렵지 않습니다. 그리고 원하는 경우 실제 빌드 프로세스를 변경할 수 있기 때문에 더욱 융통성이 있습니다.

msbuild를 YourProject.dproj

+0

나는 곧 MS 빌드로 이동해야한다. 도와 줘서 고마워. –

2

델파이는 실제로 당신이 컴파일을하거나 빌드 할 때 출력 탭에서 필요한 명령 줄을 제공 할 것입니다.

  1. 프로젝트를 일반적으로 Delphi에서 빌드하십시오.
  2. 하단에는 "Output"이라는 탭이 있습니다. "Target CoreCompile"(D2007의 경우 - 다른 버전에서는 다를 수 있음)이라는 줄을 찾습니다. 아래 줄은 프로젝트를 빌드하는 데 사용되는 명령 줄입니다 (원하는 내용입니다). Btw - 프로젝트가 완료 될 때까지 기다릴 필요가 없습니다. 필요한 모든 작업이 DCC32 명령 줄 호출이기 때문에 취소하기 전에 취소 할 수 있습니다. 또한 이전 컴파일 작업을 수행 한 경우 빌드하기 전에 출력을 마우스 오른쪽 버튼으로 클릭하여 지우고 "노이즈"가 많이 발생하지 않도록 할 수 있습니다.
  3. 해당 행을 클릭하여 강조 표시 한 다음 행을 마우스 오른쪽 단추로 클릭하고 복사를 선택하십시오.
  4. 빈 배치 파일을 열고 붙여 넣습니다. (경고, 줄이 길어질 수 있습니다)
  5. 이제 해당 줄의 시작 부분으로 이동하여 DCC32 컴파일러 경로에 공백이 포함되어 있으면 DCC32 호출을 따옴표로 묶어야합니다. 매개 변수 주위의 따옴표
  6. DCC32 호출 위에 한 줄을 삽입하고 dos 명령을 입력하여 dpr 파일이있는 디렉토리로 디렉토리를 설정하십시오. 그렇지 않으면 DCC32에서 프로젝트를 찾을 수 없다고 말합니다. 예를 들어. G:
    cd \Apps\MyProject
  7. 배치 파일을 저장하고 당신은 갈 준비가되어 있습니다.
+0

좋은 오래된 dcc32.exe를 홍보하기위한 +1 - 빌드 서버에서도 쉽게 설정할 수 있습니다. – mjn

관련 문제