[Platform SDK] 64bit nmake を使うには?
[amazon_enhanced asin=”4873112699″ container=”” container_class=”” price=”All” background_color=”FFFFFF” link_color=”000000″ text_color=”0000FF” /] [amazon_enhanced asin=”4900900605″ container=”” container_class=”” price=”All” background_color=”FFFFFF” link_color=”000000″ text_color=”0000FF” /] [amazon_enhanced asin=”4873115000″ container=”” container_class=”” price=”All” background_color=”FFFFFF” link_color=”000000″ text_color=”0000FF” /] [amazon_enhanced asin=”4873114772″ container=”” container_class=”” price=”All” background_color=”FFFFFF” link_color=”000000″ text_color=”0000FF” /]
64bit 環境 ActivePerl (64bit) を使うと、PPM (Perl Package Manager) でインストールできない PM (Perl Module) は、ローカル 環境にて make, make install をしなければならない時があります。このとき nmake.exe が必要となりますが、OS 標準では持たないので Microsoft Platform SDK インストールにて対応させます。
まずはMicrosoft Platform SDKを入手します。(対象OS は Windows Server 2008R2 ですが、Windows Server 2003SP1 Platform SDK で対応します。この件はマイクロソフトが保障している内容ではなく私の経験値なので不安な方は Visual Studio 2010 等を入手ください)
—
■入手
Windows® Server 2003 SP1 Platform SDK Web Install (PSDK-amd64.exe / 1.3MB をWebインストールします)
—
■動作するように環境変数を設定しましょう。
システムのプロパティ ⇒ 「詳細設定」 ⇒ 「環境変数」 ⇒ システム環境変数 PATH へ C:Program FilesMicrosoft Platform SDKBin; を先頭に追加します。
すなわち、Perl (64bit) 、IIS-PHP 、MySQL と SQL2008 も追加されてれば次のものが PATH コマンドで確認できれば動作します。
C:Program FilesMicrosoft Platform SDKBin;C:Perl64sitebin;C:Perl64bin;C:Program Files (x86)PHP;%SystemRoot%system32;%SystemRoot%;%SystemRoot%System32Wbem;%SYSTEMROOT%System32WindowsPowerShellv1.0;C:Program FilesMySQLMySQL Server 5.1bin;C:Program Files (x86)jZip;c:Program Files (x86)Microsoft SQL Server100ToolsBinn;c:Program FilesMicrosoft SQL Server100ToolsBinn;c:Program FilesMicrosoft SQL Server100DTSBinn
—
■動作確認
コマンドから name /? とタイプ確認しましょう。
—
■動作例
CPAN シェル上で、IPC::Run (MovableType のイメージドライバとしてNetPBMを利用する場合に必要となるPerl Module) をインストールする。
なお、nmake のパスが通っていない、あるいは導入されていない場合は make エラーとなります。
===
↑ 本来 make には MakeFile が必要で、ただソースを拾ってきただけではビルドそのものが出来ないものもあります。CPAN に登録されているものでも、内容が古い(perl 動作環境が最新過ぎる)場合には、make を見直すことになるので参考書が必要になるかも知れません。