最終更新日: 2017-09-03 日 22:12
ホーム | 文書トップ | 目次

PAR 0.90 インストール

Table of Contents

はじめに

ActivePerl 5.6.1.638 で、PARのインストール。

本方法により、PARのインストール、perlスクリプトからexeファイルの生成を確認済み。

その他の事例は、PAR関連 を参照。

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。

ホーム | 文書トップ | 目次
Created by Emacs 27.1 (Org mode 9.3)