画像を動的に操作するライブラリーであるlibGDをソースコードからインストールする。
インストール情報
項目 | 説明 |
配布元 | GD Graphics Library |
手順 | |
依存情報 | |
依存先 (必須) |
Make (GNU Make) |
依存先 (任意) | - CMake: CMakeでのビルド時。
- zlib: データ圧縮。
- FreeType 2.x: 高品質なフォント描画用。
- IJG/libjpeg or libjpeg-turbo: JPEG画像対応。
- libpng: PNG画像対応。
- libtiff: TIFF画像対応。
- libwebp: WebP画像対応。
- libXpm (XPM): XPM画像対応。
|
依存元 | PHP拡張機能 |
インストール例
日付 |
バージョン | OS | 依存関係 |
2018-04-30 |
2.2.5 | Ubuntu 16.04 | GNU Make 4.2.1, GCC 8.1.0, libPNG 1.6.16, libJPEG 9c |
2019-03-03 | 2.2.5 | Ubuntu 18.04 | GNU Make 4.2.1, GCC 7.4.0, Zlib 1.2.11, libPNG 1.6.16, libJPEG 9c |
libGDはAutoconfツールとCMakeの2通りのビルド方法がある。
CMakeの場合,cmake実行時にENABLE_PNG=1などを指定して,明示的にオプションライブラリーを指定する必要がある。その一方,Autoconf (configure) の場合,ビルドマシンの状況に応じて自動的に追加機能を有効にするか判定してくれる。そのため,Autoconfを選んだ。
CMakeでビルドする場合,autoreconfと./configureの2行を無視して,コメントアウトしているmkdir buildとcmakeの2行のコマンドを実行すればよい。
なお,Autoconfでビルドする場合,GCC 7 or 8を使っているとmake実行時に以下のエラーが発生する。
strncpy関数の使用に問題があるようだ。このビルドエラーは以下のissueで議論されている。
annotate.c/gdft.c: Replace strncpy with memccpy to fix -Wstringop-tru… by robertlinux · Pull Request #442 · libgd/libgd
そして,コミットID 748578ff3fa4b636513373f0613e158b930f3ed4で修正された。ただし,この修正は2018-06-22になされている。次期リリースのlibGD 2.2.6,またはmasterであればこのコンパイルエラーは起きないだろう。ただし,現時点の最新のlibGD 2.2.5 (2017-08-30リリース) にはまだ入っていない。
そのため,このビルドエラーを回避する工夫が必要だ。このビルドエラーはコンパイルオプションに-Werror
が指定されているのが原因だ。このオプションがあると,本来なら警告で済むものもコンパイルエラーとみなして,ビルドを中断する。
Autoconfでmakeを作成した場合,以下のコンパイルオプションが指定されているようだ。
-Werror -g -O2 -fvisibility=hidden -Wall
そこで,make実行時にCLFAGSを指定してコンパイルオプションを上書きして,ビルドエラーを回避している。
なお,CMakeでビルドする場合,コンパイルオプションに-Werror
が指定されていないため,このエラーは起きない。
関連
“libGDのインストール” に対して2件のコメントがあります。