Cygwin使っている人いますか? その21
■ このスレッドは過去ログ倉庫に格納されています
0023名無しさん@お腹いっぱい。
2012/04/03(火) 04:40:13.52動的組み込みにしようとすると手間がかかる
手順は、
・普通に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編集
■ このスレッドは過去ログ倉庫に格納されています