2012-12-25 3 views
1

저는 Delphi를 매우 새로 도입했습니다. 내가 명령 줄을 사용하여 내 프로젝트의 패키지 중 하나를 컴파일하려고하고 난 다음 배치 파일커맨드 라인을 사용하여 패키지를 컴파일하는 방법

BuildAll.bat

call rsvars.bat  
set COMPILER=%BDS%\bin\DCC32.EXE 
echo Compiler: %COMPILER% 
echo. 
MD "%CURRENT_DIR%\..\bin" 
MD "%CURRENT_DIR%\..\bin\bpl" 
MD "%CURRENT_DIR%\..\bin\dcu" 
cd %CURRENT_DIR%\..\bin\bpl 
del *.bpl /q 
del *.dcp /q 
del *.drc /q 
del *.map /q 
cd %CURRENT_DIR%\%VCLFOLDER%\RemObjects SDK 
del wo3p_03_DXE.* /s/q 

:Build_CompatLib 
echo ...Building CompatLib... 
echo. 
cd %CURRENT_DIR%\%VCLFOLDER% 
call BuildCompatLib.bat 

:Build_DevExpress_Old 
echo ...Building DevExpress... 
echo. 
cd %CURRENT_DIR%\%VCLFOLDER% 
call BuildDevExpress.bat old 

을 사용하여 다음과 같은 오류

dxmdaset.pas Fatal:F1026 File not found: CompatLib_DXE.dcp 

무엇입니까 BuildCompatLib.bat

@echo off 
if "%COMPILER%" == "" goto no_compiler 
echo Building ComaptLib Component Library: 
set COMPILER_OPTIONS=%2 %3 %4 %5 %6 %7 %8 %9 
set COMAPTLIB_ROOT=%CD%\Compatibility 
if not "%2" == "" echo You specified these dcc32 options: %COMPILER_OPTIONS% 
if  "%2" == "" echo Recreating all DCUs then linking td32 info and writing a detailed 
map file. 

if  "%2" == "" set COMPILER_OPTIONS=-q -b -gd -v 
echo. 
:CompatLib 
cd %COMAPTLIB_ROOT% 
echo Compiling CompatLib_DXE %COMPILER_OPTIONS% 
echo. 
    "%COMPILER%" CompatLib_DXE.dpk %COMPILER_OPTIONS% 

if ERRORLEVEL 1 goto error 
echo. 
:end_ComaptLib 
echo no errors in building CompatLib packages 
echo. 
echo. 
goto end 
:error 
echo. 
echo ERROR! building CompatLib packages: %~f0 
echo. 
pause 
:end 
dcldxdms_dxe.dpk를 컴파일하는 동안

BuildDevExpress.bat

@echo off 
rem Compiler defined in calling batch file 
if "%COMPILER%" == "" goto no_compiler 
echo Building DevExpress Component Libraries: 
set COMPILER_OPTIONS=%2 %3 %4 %5 %6 %7 %8 %9 
set DEVEXPRESS_ROOT=%CD% 
if not "%2" == "" echo You specified these dcc32 options: %COMPILER_OPTIONS% 
if  "%2" == "" echo Recreating all DCUs then linking td32 info and writing a detailed map file. 
if  "%2" == "" set COMPILER_OPTIONS=-q -b -gd -v 
echo. 
:DevExpressCommon 
:DevExpressMemData 
set PKG_LOCATION=DevExpress\ExpressMemData\Delphi 7\Sources 
rem set PKG_LOCATION=DevExpress New\ExpressMemData\Packages 
cd %DEVEXPRESS_ROOT%\%PKG_LOCATION% 
echo Compiling dxmds_DXE.dpk %COMPILER_OPTIONS% 
echo. 
    "%COMPILER%" dxmds_DXE.dpk %COMPILER_OPTIONS% 
echo Compiling dcldxmds_DXE.dpk %COMPILER_OPTIONS% 
echo. 
    "%COMPILER%" dcldxmds_DXE.dpk %COMPILER_OPTIONS% 
if ERRORLEVEL 1 goto error 
cd %DEVEXPRESS_ROOT% 
echo. 

나는 오류를 얻었다. 이전에 컴파일되었지만 찾을 수 없었던 실제로 compatlib_dxe.dcp을 찾고 있습니다.

+0

더 큰 그림으로 업데이트 할 수 있습니까? –

+0

질문을 게시하기 전에 미리보십시오. 이 작업을 수행했다면 이미지가 방금 공간의 낭비 였음을 알았을 것입니다. 그리고 최소한 유용 할 수 있도록 약간자를 수있었습니다. :-) 또한,'CompatLib_DEX.dcp' 파일과'.dcu' 파일이'Delphi 7 \ Bin' 폴더에 있다면, 여러분은 구성 요소를 심하게 설치했기 때문에 델파이 설치 근처에 있으면 안됩니다 예배 규칙서. –

+0

@KenWhite : 이미지 죄송합니다. CompatLib_DEX.dcp는 내 D : \ Bin에있는 내 dephi7 \ bin 폴더에 없으며 사용하는 명령 줄 스위치로 내 질문을 업데이트했습니다. – Jeeva

답변

0

IDE에서 컴파일 할 때 Delphi는 프로젝트 설정의 라이브러리 경로와 Delphi 자체 라이브러리 경로를 모두 추가합니다.

명령 줄에서 컴파일하는 경우 모든 인수를 컴파일러에 추가해야합니다.

이 델파이의 IDE에서 호출 컴파일러로 전송 라인을 볼 수있는 옵션도하지만 그들이 것을 추가 할 때 내가 기억하지 않는, 그래서 델파이 7

+0

IDE에서 컴파일러 명령 줄을 볼 수있는 옵션이 IIRC D2006에 추가되었습니다. 확실히 D7에서는 사용할 수 없었습니다. MSBuild를 명령 줄 빌드에 사용하도록 변경되었을 때 추가되었습니다. –

1

당신에서 제공되지 않을 수 있습니다 하나

  • 그들을 공급 프로젝트 폴더에 DCC32.CFG 파일을 제공 적절한 명령 줄 스위치 및 컴파일러 명령 줄의 경로, 또는
  • 을 포함해야합니다.

은 매개 변수없이 dcc32을 실행 스위치를 컴파일러 요구를 찾으려면 (또는 /? 또는 --help와) 명령 줄에서 :

c:\Users\YourName>dcc32 

또는 DCC32.CFG에 대한 델파이 도움말 파일 항목을 참조하십시오 (검색 따옴표없이 정확히 그 도움을) :

옵션 목록을 DCC32.CFG라는 구성 파일에 설정할 수 있습니다. 그러면이 옵션이 optio와 함께 사용됩니다 ns가 명령 행에 입력되었습니다. 구성 파일의 각 줄은 실제 명령 줄 인수 앞에 삽입 된 추가 명령 줄 인수에 해당합니다. 따라서 구성 파일을 작성하여 모든 명령 행 옵션의 기본 설정을 변경할 수 있습니다.

명령 줄 컴파일러를 사용하면 동일한 명령 줄 옵션을 여러 번 입력하고 마지막 항목을 제외하고 모두 무시할 수 있습니다. 이렇게하면 설정 파일을 사용하여 일부 설정을 변경했지만 명령 행에서 설정을 무시할 수 있습니다.

dcc32가 시작되면 현재 디렉터리에서 DCC32.CFG를 찾습니다. 거기에 파일이 없으면 dcc32는 DCC32.EXE가있는 디렉터리를 찾습니다.객체 및 장치 파일을 포함하고 위해 여기

몇 가지 기본 디렉토리를 정의하는, 예를 들어 DCC32.CFG 파일의는 $ O 및 $ R 컴파일러 지시어의 기본 상태 변화 :

-IC:\DELPHI\INC;C:\DELPHI\SRC 

-OC:\DELPHI\ASM 
-UC:\DELPHI\UNITS 
-$R+ 

-$O- 

지금, 당신이 입력하는 경우 : 사용자가 입력 한 경우 다음과 같은

DCC32의 mystuff에

컴파일러는 수행

dcc32 -IC:\DELPHI\INC;C:\DELPHI\SRC -OC:\DELPHI\ASM -UC:\DELPHI\UNITS -$R+ -$O- MYSTUFF 
관련 문제