国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術文章
文章詳情頁

libpng版本問題導致的PHP調(diào)用gd擴展出錯解決方案

瀏覽:4日期:2022-09-13 13:41:11

寫一個測試gd的腳本test.php,然后在命令行執(zhí)行,報錯信息如下:

php test.phplibpng warning: Application was compiled with png.h from libpng-1.5.6libpng warning: Application is running with png.c from libpng-1.2.49libpng error: Incompatible libpng version in application and library[read_png_file] png_create_read_struct failed

很納悶,在編譯gd、php的時候,已經(jīng)指定了png的位置–with-png-dir=/usr/local/libpng,使用的是1.5.6,為什么執(zhí)行的時候還會調(diào)用自帶的libpng-1.2.49 ,于是把系統(tǒng)的 libpng-1.2.49 刪除掉(因為是測試環(huán)境,就隨便刪了,線上服務器自重),重新編譯php,我了個去,編譯不過去,提示:(這里是因為gd有調(diào)用,導致php編譯gd庫的時候找不到)

/usr/bin/ld: cannot find -lpng12collect2: ld returned 1 exit statusmake: *** [sapi/fpm/php-fpm] Error 1

我擦,默認會調(diào)用系統(tǒng)的庫!!!編譯調(diào)用png的地方就只有2個,一個是php的編譯參數(shù)–with-png-dir=/usr/local/libpng, 另一個是gd庫,于是重新編譯gd,在編譯的時候發(fā)現(xiàn)這樣的2行:

libpng版本問題導致的PHP調(diào)用gd擴展出錯解決方案

原來在gd這里,就已經(jīng)調(diào)用了系統(tǒng)的libpng-1.2.49。 這里順便說下,libpng12 、libpng15、libpng16 數(shù)字就是代表版本號1.2.X ,1.5.X ,1.6.X 具體可以看

ls /usr/include/libpng* 知道問題所在,解決問題就比較有針對性了,2個方法:

1、把系統(tǒng)自帶的給刪除了,這個覺得比較不靠譜,怕有互相依賴,有后遺癥就不好了。

刪除后編譯的時候就變成:

checking for libpng12-config... nochecking for libpng-config... /usr/local/bin/libpng-config

2、兩個版本都可以保留,編譯后,修改Makefile文件。

修改262行左右 LIBPNG12_CONFIG的值,改成跟LIBPNG_CONFIG 一樣即可,如:

LIBPNG12_CONFIG = /usr/bin/libpng12-configLIBPNG_CONFIG = /usr/local/bin/libpng-config

修改成

LIBPNG12_CONFIG = /usr/local/bin/libpng-configLIBPNG_CONFIG = /usr/local/bin/libpng-config

然后就make && make install就OK了。

標簽: PHP
相關文章:
主站蜘蛛池模板: 邛崃市| 金湖县| 隆子县| 毕节市| 陵川县| 河南省| 苗栗县| 乌兰浩特市| 正宁县| 彰化县| 揭阳市| 台东县| 兰州市| 南漳县| 松潘县| 敖汉旗| 双鸭山市| 花莲县| 凤阳县| 自贡市| 禹州市| 宾阳县| 卫辉市| 伽师县| 濉溪县| 五峰| 永康市| 星座| 江都市| 麻阳| 浑源县| 嘉善县| 星子县| 泽州县| 石门县| 包头市| 娄烦县| 阿拉善左旗| 勃利县| 淮北市| 临颍县|