1

私はDelphiを初めて使用します。コマンド ラインを使用してプロジェクト内のパッケージの 1 つをコンパイルしようとすると、次のエラーが発生します。

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

次のバッチファイルを使用します

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

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

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.

コンパイル中にエラーが発生しましdcldxdms_dxe.dpkた。実際には、compatlib_dxe.dcp以前にコンパイルされたものを探していますが、見つかりませんでした。

4

2 に答える 2

1

どちらかにする必要があります

  • 適切なコマンド ライン スイッチとコンパイラ コマンド ラインへのパスを含める、または
  • それらを提供するプロジェクト フォルダーに DCC32.CFG ファイルを提供します。

コンパイラが必要とするスイッチを見つけるには、コマンド ラインからdcc32パラメータを指定せずに (または または を指定して) 実行します/?--help

c:\Users\YourName>dcc32

または、次の Delphi ヘルプ ファイルのトピックを参照してくださいDCC32.CFG(引用符なしで正確にヘルプを検索してください)。

DCC32.CFG という構成ファイルでオプションのリストを設定できます。これは、コマンド ラインで入力したオプションに加えて使用されます。構成ファイルの各行は、実際のコマンドライン引数の前に挿入された追加のコマンドライン引数に対応しています。したがって、構成ファイルを作成することにより、任意のコマンド行オプションのデフォルト設定を変更できます。

コマンド ライン コンパイラを使用すると、同じコマンド ライン オプションを複数回入力できます。最後のオカレンス以外はすべて無視されます。このように、構成ファイルで一部の設定を変更した場合でも、コマンド ラインでそれらをオーバーライドできます。

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 マイスタッフ

コンパイラは、次のように入力したかのように動作します。

dcc32 -IC:\DELPHI\INC;C:\DELPHI\SRC -OC:\DELPHI\ASM -UC:\DELPHI\UNITS -$R+ -$O- MYSTUFF
于 2012-12-25T04:53:21.967 に答える
0

IDE からコンパイルする場合、Delphi はプロジェクト設定からのライブラリ パスと Delphi 独自のライブラリ パスの両方を追加します。

コマンド ラインからコンパイルする場合は、これらすべてを引数としてコンパイラに追加する必要があります。

IDE から呼び出されたときに Delphi がコンパイラに送信した行を表示するオプションもありますが、それがいつ追加されたか覚えていないため、Delphi 7 では使用できない可能性があります。

于 2012-12-25T04:00:00.427 に答える