PAR 0.90 インストール
Table of Contents
はじめに
ActivePerl 5.6.1.638 のインストール
- Active Perl 5.6.1.638 をインストール
- インストール先は C:\usr\Perl\ 。「Enable PPM3 to send profile info to ASPN」のチェックははずしたまま
ソースからビルドしてインストール
前準備
"C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\bin\vcvars32.bat"
依存関係
- PAR 0.90 を直接インストールしようとすると、下記のように言われる
perl Makefile.PL '*** ExtUtils::AutoInstall version 0.63 '*** Checking for dependencies... [Core Features] - File::Temp ...loaded. (0.12 >= 0.05) - Compress::Zlib ...loaded. (1.22 >= 1.16) - Archive::Zip ...missing. (would need 1) - Module::ScanDeps ...missing. (would need 0.45) - PAR::Dist ...missing. (would need 0.06)
依存関係があるモジュールのインストール
Archive-Zip (1.14)
perl Makefile.PL nmake nmake test nmake install
Module-ScanDeps (0.45)
perl Makefile.PL nmake nmake test nmake install
PAR-Dist (0.07)
perl Makefile.PL nmake nmake test nmake install
Parse-Binary (0.08)
perl Makefile.PL nmake nmake test nmake install
Win32-Exe (0.05)
perl Makefile.PL nmake nmake test nmake install
Getopt-ArgvFile (1.11)
perl Makefile.PL nmake nmake test nmake install
PAR のインストール
- PAR (0.90)
perl Makefile.PL nmake nmake test nmake install
当初、make test でエラーが出まくっていた。 結局、 Getopt-ArgvFile (1.11) を入れたら、無事インストールできた
perl Makefile.PL '*** ExtUtils::AutoInstall version 0.63 '*** Checking for dependencies... [Core Features] - File::Temp ...loaded. (0.12 >= 0.05) - Compress::Zlib ...loaded. (1.22 >= 1.16) - Archive::Zip ...loaded. (1.14 >= 1) - Module::ScanDeps ...loaded. (0.45 >= 0.45) - PAR::Dist ...loaded. (0.07 >= 0.06) [Windows --icon and --info support] - Parse::Binary ...loaded. (0.08 >= 0.04) - Win32::Exe ...loaded. (0.05 >= 0.04) '*** ExtUtils::AutoInstall configuration finished. Checking if your kit is complete... Looks good Writing Makefile for the par.exe program Writing Makefile for PAR
nmake Microsoft(R) Program Maintenance Utility Version 7.10.3077 Copyright (C) Microsoft Corporation. All rights reserved. cp lib/PAR.pm blib\lib\PAR.pm cp lib/PAR/Filter/Obfuscate.pm blib\lib\PAR\Filter\Obfuscate.pm cp lib/PAR/Filter.pm blib\lib\PAR\Filter.pm cp lib/PAR/Filter/Bytecode.pm blib\lib\PAR\Filter\Bytecode.pm cp lib/App/Packer/PAR.pm blib\lib\App\Packer\PAR.pm cp lib/PAR/Tutorial.pod blib\lib\PAR\Tutorial.pod cp lib/PAR/Filter/PatchContent.pm blib\lib\PAR\Filter\PatchContent.pm cp lib/PAR/Filter/PodStrip.pm blib\lib\PAR\Filter\PodStrip.pm cp lib/PAR/Packer.pm blib\lib\PAR\Packer.pm cp lib/PAR/FAQ.pod blib\lib\PAR\FAQ.pod cp lib/PAR/Filter/Bleach.pm blib\lib\PAR\Filter\Bleach.pm cp lib/PAR/Heavy.pm blib\lib\PAR\Heavy.pm C:\usr\Perl\bin\perl.exe sha1.c.PL sha1.c cl -c -Zm1000 -nologo -O1 -MD -Zi -DNDEBUG -DWIN32 -D_CONSOLE -DNO_STRICT -DHAVE_DES_FCRYPT -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DPERL_MSVCRT_READFIX -I"C:\usr\Perl\lib\CORE" sha1.c cl : コマンド ライン warning D4029 : 標準の編集コンパイラでは最適化は使用できません。 sha1.c C:\usr\Perl\bin\perl.exe .\file2c.pl C:\usr\Perl\bin\perl56.dll my_perl.c load_me_0 0 30000 cl -c -Zm1000 -nologo -O1 -MD -Zi -DNDEBUG -DWIN32 -D_CONSOLE -DNO_STRICT -DHAVE_DES_FCRYPT -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DPERL_MSVCRT_READFIX -I"C:\usr\Perl\lib\CORE" main.c cl : コマンド ライン warning D4029 : 標準の編集コンパイラでは最適化は使用できません。 main.c C:\usr\Perl\bin\perl.exe .\file2c.pl ..\script\par.pl my_par_pl.c load_me_2 0 cl -c -Zm1000 -nologo -O1 -MD -Zi -DNDEBUG -DWIN32 -D_CONSOLE -DNO_STRICT -DHAVE_DES_FCRYPT -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DPERL_MSVCRT_READFIX -I"C:\usr\Perl\lib\CORE" my_par_pl.c cl : コマンド ライン warning D4029 : 標準の編集コンパイラでは最適化は使用できません。 my_par_pl.c link main.obj my_par_pl.obj win32.obj -release -nologo -nodefaultlib -debug -opt:ref,icf -libpath:"C:\usr\Perl\lib\CORE" -machine:x86 C:\usr\Perl\lib\CORE\perl56.lib "C:\Program Files\Microsoft Visual Studio .NET 2003\VC7\LIB\oldnames.lib" "C:\Program Files\Microsoft Visual Studio .NET 2003\VC7\LIB\kernel32.lib" "C:\Program Files\Microsoft Visual Studio .NET 2003\VC7\PlatformSDK\lib\user32.lib" "C:\Program Files\Microsoft Visual Studio .NET 2003\VC7\PlatformSDK\lib\gdi32.lib" "C:\Program Files\Microsoft Visual Studio .NET 2003\VC7\PlatformSDK\lib\winspool.lib" "C:\Program Files\Microsoft Visual Studio .NET 2003\VC7\PlatformSDK\lib\comdlg32.lib" "C:\Program Files\Microsoft Visual Studio .NET 2003\VC7\PlatformSDK\lib\advapi32.lib" "C:\Program Files\Microsoft Visual Studio .NET 2003\VC7\PlatformSDK\lib\shell32.lib" "C:\Program Files\Microsoft Visual Studio .NET 2003\VC7\PlatformSDK\lib\ole32.lib" "C:\Program Files\Microsoft Visual Studio .NET 2003\VC7\PlatformSDK\lib\oleaut32.lib" "C:\Program Files\Microsoft Visual Studio .NET 2003\VC7\PlatformSDK\lib\netapi32.lib" "C:\Program Files\Microsoft Visual Studio .NET 2003\VC7\PlatformSDK\lib\uuid.lib" "C:\Program Files\Microsoft Visual Studio .NET 2003\VC7\PlatformSDK\lib\wsock32.lib" "C:\Program Files\Microsoft Visual Studio .NET 2003\VC7\PlatformSDK\lib\mpr.lib" "C:\Program Files\Microsoft Visual Studio .NET 2003\VC7\PlatformSDK\lib\winmm.lib" "C:\Program Files\Microsoft Visual Studio .NET 2003\VC7\PlatformSDK\lib\version.lib" "C:\Program Files\Microsoft Visual Studio .NET 2003\VC7\PlatformSDK\lib\odbc32.lib" "C:\Program Files\Microsoft Visual Studio .NET 2003\VC7\PlatformSDK\lib\odbccp32.lib" "C:\Program Files\Microsoft Visual Studio .NET 2003\VC7\LIB\msvcrt.lib" -out:.\par.exe C:\usr\Perl\bin\perl.exe .\file2c.pl .\par.exe my_par.c load_me_1 0 30000 cl -c -Zm1000 -nologo -O1 -MD -Zi -DNDEBUG -DWIN32 -D_CONSOLE -DNO_STRICT -DHAVE_DES_FCRYPT -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DPERL_MSVCRT_READFIX -I"C:\usr\Perl\lib\CORE" static.c cl : コマンド ライン warning D4029 : 標準の編集コンパイラでは最適化は使用できません。 static.c link static.obj -release -nologo -nodefaultlib -debug -opt:ref,icf -libpath:"C:\usr\Perl\lib\CORE" -machine:x86 C:\usr\Perl\lib\CORE\perl56.lib "C:\Program Files\Microsoft Visual Studio .NET 2003\VC7\LIB\oldnames.lib" "C:\Program Files\Microsoft Visual Studio .NET 2003\VC7\LIB\kernel32.lib" "C:\Program Files\Microsoft Visual Studio .NET 2003\VC7\PlatformSDK\lib\user32.lib" "C:\Program Files\Microsoft Visual Studio .NET 2003\VC7\PlatformSDK\lib\gdi32.lib" "C:\Program Files\Microsoft Visual Studio .NET 2003\VC7\PlatformSDK\lib\winspool.lib" "C:\Program Files\Microsoft Visual Studio.NET 2003\VC7\PlatformSDK\lib\comdlg32.lib" "C:\Program Files\Microsoft Visual Studio .NET 2003\VC7\PlatformSDK\lib\advapi32.lib" "C:\Program Files\Microsoft Visual Studio .NET 2003\VC7\PlatformSDK\lib\shell32.lib" "C:\Program Files\Microsoft Visual Studio .NET 2003\VC7\PlatformSDK\lib\ole32.lib" "C:\Program Files\Microsoft Visual Studio .NET 2003\VC7\PlatformSDK\lib\oleaut32.lib" "C:\Program Files\Microsoft Visual Studio .NET 2003\VC7\PlatformSDK\lib\netapi32.lib" "C:\Program Files\Microsoft Visual Studio .NET 2003\VC7\PlatformSDK\lib\uuid.lib" "C:\Program Files\Microsoft Visual Studio .NET 2003\VC7\PlatformSDK\lib\wsock32.lib" "C:\Program Files\Microsoft Visual Studio .NET 2003\VC7\PlatformSDK\lib\mpr.lib" "C:\Program Files\Microsoft Visual Studio .NET 2003\VC7\PlatformSDK\lib\winmm.lib" "C:\Program Files\Microsoft Visual Studio .NET 2003\VC7\PlatformSDK\lib\version.lib" "C:\Program Files\Microsoft Visual Studio .NET 2003\VC7\PlatformSDK\lib\odbc32.lib" "C:\Program Files\Microsoft Visual Studio .NET 2003\VC7\PlatformSDK\lib\odbccp32.lib" "C:\Program Files\Microsoft Visual Studio .NET 2003\VC7\LIB\msvcrt.lib" win32.obj -out:.\static.exe C:\usr\Perl\bin\perl.exe parlsig.pl .\static.exe .\par.exe 1 30000 .\static.exe -I"inc" -I"C:\usr\Perl\lib" -I"C:\usr\Perl\site\lib" -I"C:/usr/Perl/lib" -I"C:/usr/Perl/site/lib" -I"." -I../myldr/.. -I../blib/lib -q -B -O..\script\parl.exe .\par.exe -I../myldr/.. -I../blib/lib -I"inc" -I"C:\usr\Perl\lib" -I"C:\usr\Perl\site\lib" -I"C:/usr/Perl/lib" -I"C:/usr/Perl/site/lib" -I"." -q -B -O..\script\parldyn.exe C:\usr\Perl\bin\perl.exe -Iinc -IC:\usr\Perl\lib -IC:\usr\Perl\lib -MExtUtils::Command -e cp script/parldyn.exe blib\script\parldyn.exe C:\usr\Perl\bin\perl.exe -Iinc -IC:\usr\Perl\lib -IC:\usr\Perl\lib -MExtUtils::Command -e cp script/tkpp blib\script\tkpp C:\usr\Perl\bin\perl.exe -Iinc -IC:\usr\Perl\lib -IC:\usr\Perl\lib -e "system qq[pl2bat.bat ].shift" blib\script\tkpp C:\usr\Perl\bin\perl.exe -Iinc -IC:\usr\Perl\lib -IC:\usr\Perl\lib -MExtUtils::Command -e cp script/pp blib\script\pp C:\usr\Perl\bin\perl.exe -Iinc -IC:\usr\Perl\lib -IC:\usr\Perl\lib -e "system qq[pl2bat.bat ].shift" blib\script\pp C:\usr\Perl\bin\perl.exe -Iinc -IC:\usr\Perl\lib -IC:\usr\Perl\lib -MExtUtils::Command -e cp script/parl.exe blib\script\parl.exe C:\usr\Perl\bin\perl.exe -Iinc -IC:\usr\Perl\lib -IC:\usr\Perl\lib -MExtUtils::Command -e cp script/par.pl blib\script\par.pl C:\usr\Perl\bin\perl.exe -Iinc -IC:\usr\Perl\lib -IC:\usr\Perl\lib -e "system qq[pl2bat.bat ].shift" blib\script\par.pl
DLL依存への対処方法
ただ、pp.bat で実際に作成した a.exe がDLL依存になってしまった。
他のPCで a.exe を実行した時に、
「a.exe - コンポーネントが見つかりません」「MSVCR71.dll が見つからなかったため、このアプリケーションを開始できませんでした。アプリケーションをインストールし直すとこの問題は解決される場合があります。」 と表示される。
MSVCR71.dll をインストールすればよいが、それもいまいちなので、DLLに依存しないようにビルドする。
perl Makefile.PL を実行すると生成される、myldr/Makefile を編集する。 -MD を -MT に、msvcrt.lib を libcmt.lib に書き換える。これで、nmake すればOK。