php make編譯時,iconv 報錯
阿新 • • 發佈:2020-07-15
報錯內容:
1 Undefined symbols for architecture x86_64: 2 "_libiconv", referenced from: 3 _php_iconv_string in iconv.o 4 __php_iconv_strlen in iconv.o 5 _zif_iconv_substr in iconv.o 6 __php_iconv_strpos in iconv.o 7 _zif_iconv_mime_encode in iconv.o 8 __php_iconv_appendl in iconv.o 9 _php_iconv_stream_filter_append_bucket in iconv.o 10 ... 11 "_libiconv_close", referenced from: 12 _php_iconv_string in iconv.o 13 __php_iconv_strlen in iconv.o 14 _zif_iconv_substr in iconv.o 15 __php_iconv_strpos in iconv.o 16 _zif_iconv_mime_encode in iconv.o 17 __php_iconv_mime_decode in iconv.o 18 _php_iconv_stream_filter_factory_create in iconv.o 19 ... 20 "_libiconv_open", referenced from: 21 _php_iconv_string in iconv.o 22 __php_iconv_strlen in iconv.o 23 _zif_iconv_substr in iconv.o 24 __php_iconv_strpos in iconv.o 25 _zif_iconv_mime_encode in iconv.o 26 __php_iconv_mime_decode in iconv.o 27 _php_iconv_stream_filter_factory_create in iconv.o 28 ... 29 ld: symbol(s) not found for architecture x86_64 30 clang: error: linker command failed with exit code 1 (use -v to see invocation) 31 make: *** [sapi/cli/php] Error 1
解決方法:
1、 ./configure --prefix=/usr/local/php --with-mysqli=mysqlnd --enable-mysqlnd --with-iconv=/usr/local/opt/libiconv 2、 修改 Makefile 檔案:搜尋 -liconv,應該是在 EXTRA_LIBS = 這一行裡,將 其替換為 /usr/local/opt/libiconv/lib/libiconv.dylib 3、 make 4、 sudo make install