実際、私の最終目標は、PHP5.4 をサポートする php_xdebug.dll をコンパイルすることですが、その前に、PHP5.4 を正常にコンパイルする必要があります。
コンパイル環境と関連ソフトウェアパッケージ:
1.Microsoft Visual C++ 2008 Express Edition SP1
2.Windows SDK 6.1
3.PHP SDK バイナリツール
4.信頼できるライブラリ
5.PHP5.4 ソース
6.Xdebug 2.2.0-dev
VC6 コンパイル環境が必要な場合は、Visual C++ 6.0 をインストールする必要があり、SDK を次のものに置き換える必要があります:
Windows Server 2003 PSDK
コンパイルプロセス:
コーヒーとコーラを用意してください、準備してください、何時間もかかるかもしれません...
VC++ 2008 と Windows SDK 6.1 をインストールします
次のディレクトリを作成します:
コードをコピーします コードは次のとおりです:
D:php-sdk
D:php-sdkphp54dev
D:php-sdkpecl
php-sdk-binary-tools-20110915.zip 内のすべてのファイルを D:php-sdk に解凍します
deps-5.4-vc9-x86.7z の deps ディレクトリを D:php-sdkphp54dev に解凍します
php5.4 ソース コードを D:php-sdkphp54dev に解凍し、php-5.4.0RC3 などの任意のディレクトリ名を選択します
xdebugのソースコードはD:php-sdkpeclxdebugに配置されています
最終的なディレクトリ構造はおそらく次のようになります:
コードをコピーします コードは次のとおりです:
D:php-sdk>ツリー D:php-sdk
ボリューム DISK_VOL2 のフォルダー PATH リスト
巻末シリアル番号は0C74-AD73
D:PHP-SDK
§───ビン
§───php54dev
│ §───デプス
│ │ §───ビン
│ │ §───含む
│ │ §───リブ
│ │ └───sybase
│ §───pecl
│ │ └───xdebug
│ └───php-5.4.0RC3
§───スクリプト
└───シェア
Windows SDK CMD シェルを開いて、setenv /x86 /xp /release を実行します。64 ビット システムの場合、このコマンドは必要です。パラメータを /x64 に変更しないでください。そうしないと、何千ものパラメータが表示されます。警告…
パスを設定: set PATH=D:php-sdkbin;%PATH%
SHELL ディレクトリを D:php-sdkphp54devphp-5.4.0RC3> に切り替え、buildconf を実行して構成スクリプトを生成します。
コードをコピーします コードは次のとおりです:
D:php-sdkphp54devphp-5.4.0RC3>buildconf
configure.js を再構築する
次に、「configure --help」を実行します
D:php-sdkphp54devphp-5.4.0RC3>
configure を実行して Make スクリプトを生成します。詳細なコンパイル オプションについては、configure –help を参照してください。
コードをコピーします コードは次のとおりです:
D:php-sdkphp54devphp-5.4.0RC3>configure --disable-snapshot-build --disable-debug-pack --disable-ipv6 --disable-zts --disable-isapi --disable-nsapi --without-t1lib --without-mssql --without-pdo-mssql --without-pi3web --without-enchant --enable-com-dotnet --with-mcrypt=static --disable-static-analyze --with-xdebug=shared
ここでは、-disable-snapshot-build を使用してスナップショット モードをオフにしました。このコマンドは、aolserver、apache sapi など、私にとって役に立たない多くのオプションを強制的に開くからです。最後に、-with-xdebug=shared を追加しました。このオプションを使用する前に、xdebug ソース コードの場所が正しいことを確認することをお勧めします。問題がない場合は、buildconf の後に、configure –help でこのオプションが表示されます。これは、ダイナミック リンク ライブラリにコンパイルすることを意味します。
他の pecl 拡張機能 (apc、bcompiler など) をコンパイルする場合は、関連するソース コードをダウンロードして pecl ディレクトリに置き、buildconf を再実行するだけです。
configure に問題がなければ、最後に nmake を実行してコンパイル プロセスを開始します。頑張ってください :)
最後のステップは nmake snap です。これは、コンパイルされたすべてのファイルのディレクトリ構造 (つまり、通常ダウンロードする PHP バイナリ パッケージの構造) を整理し、zip でパッケージ化します。
最終的に生成されたファイルの場所: D:php-sdkphp54devphp-5.4.0RC3Release(_TS)
エラー処理:
nmake プロセス中に多くの警告が生成されますが、中断されない限り、無視してください。 calendar.c と jewish.c のエンコードの問題について:
コードをコピーします コードは次のとおりです:
extcalendarcalendar.c : 警告 C4819: ファイルには、現在のコード ページ (936) で表現できない文字が含まれています。データの損失を防ぐために、ファイルを Unicode 形式で保存してください。
ダウ.c
イースター.c
フランス語.c
グレゴールc
ユダヤ人.c
extcalendarjewish.c : 警告 C4819: ファイルには、現在のコード ページ (936) で表現できない文字が含まれています。データの損失を防ぐために、ファイルを Unicode 形式で保存してください。
extcalendarjewish.c(324) : エラー C2001: 定数内の改行
extcalendarjewish.c(325) : エラー C2001: 定数内の改行
extcalendarjewish.c(326) : エラー C2001: 定数内の改行
extcalendarjewish.c(327) : エラー C2001: 定数内の改行
NMAKE: 致命的なエラー U1077: '"C:Program Files (x86)Microsoft Visual Studio 9.0VCBincl.exe"': リターン コード '0x2'
やめて
これら 2 つのファイルは ANSI エンコーディングを使用しており、GBK 文字セットには存在しない西洋の特殊文字がいくつか含まれています。
これは、editplus で開き、エンコード選択: 西ヨーロッパ (Windows)、UTF-8 として保存できます。
http://www.bkjia.com/PHPjc/978729.html