- 23 名前:名無しさん@お腹いっぱい。 mailto:sage [2012/04/03(火) 04:40:13.52 ]
- PHPをビルドしたが、エクステンションをビルド時の静的組み込みではなく、
動的組み込みにしようとすると手間がかかる 手順は、 ・普通にPHPをビルドする、PHPの関数がスタティックリンクされた10MBほどの実行ファイルができる ・Makefileの中のPHP_GLOBAL_OBJSで列挙されているOBJとmain/internal_functions.oを合わせて cygphp5.dllを作る。 gcc -shared -o cygphp5.dll -Wl,--out-implib=libphp5.dll.a -Wl,--whole-archive (OBJファイルたくさん) -Wl,--no-whole-archive (MakefileのEXTRA_LIBSを参照) ・MakefileのBUILD_CLI、BUILD_CGIを書き換え、PHP_GLOBAL_OBJSを含めないようにして、-lphp5を付け加え 上で作ったライブラリをリンクするようにする。 ・exeファイルを消してmakeを再実行、cygphp5.dllを動的リンクする1MBほどのexeができあがる ・make installするがdllとインポートライブラリは手動でインストール先にコピーする エクステンションを作るときはリンク時に-no-undefindオプションとLIBSに-lphp5の指定が必要 Cygwinのlibtoolは-no-undefindがないとdllを作ってくれない。LDFLAGSで指定するか要Makefile編集
|

|