linux:安裝dglib

來源:互聯網
上載者:User

轉來的,解決的問題是同樣的問題

 

在32位ubuntu9.04上編譯php5.2.12,到gd時make出錯:

ext/gd/libgd/.libs/gd_png.o: In function `php_gd_gdImageCreateFromPngCtx':
/home/test/php-5.2.12/ext/gd/libgd/gd_png.c:142: undefined reference to `png_check_sig'
collect2: ld returned 1 exit status
make: *** [sapi/cli/php] 錯誤 1

直接下載gd,在gd目錄make也類似的錯

gcc -g -O2 -o .libs/annotate annotate.o /usr/local/lib/libiconv.so -Wl,-rpath -Wl,/usr/local/lib  -L/usr/local/lib 

./.libs/libgd.so /usr/local/lib/libjpeg.so /usr/local/lib/libfreetype.so /usr/local/lib/libpng14.so -lz -lm
./.libs/libgd.so: undefined reference to `png_check_sig'
collect2: ld returned 1 exit status
make[2]: *** [annotate] 錯誤 1
make[2]:正在離開目錄 `/home/test/gd-2.0.35'
make[1]: *** [all-recursive] 錯誤 1
make[1]:正在離開目錄 `/home/test/gd-2.0.35'
make: *** [all] 錯誤 2

把php版本換為5.2.8也錯,而且從上面單獨編譯gd錯來看,與php無關.libpng已編譯安裝了的

網上搜尋不到原因


補充:現在解決了.
可以參見
http://aspn.activestate.com/ASPN/Mail/Message/php-dev/3803631
可以算是php的一個bug,libpng-1.4.0源碼中的libpng-1.4.0.txt有說明,已經取消了png_check_sig這個函數,改用png_sig_cmp代替.自從libpng-0.90就已經反對使用png_check_sig函數了.這個文章中採用修改php源碼的方法,編輯ext/gd/libgd/gd_png.c,將
if (!png_check_sig (sig, 8)) { /* bad signature */
換成
if (png_sig_cmp (sig, 0, 8)) { /* bad signature */
但我不知道其他哪些地方有沒有這個函數,所以我還是用libpng-1.2.35吧,看libpng-1.2.35.txt,就沒有提png_check_sig的事.
編譯安裝libpng-1.2.35後,php-5.2.12的mak

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.