Mac 下编译 PHP 如果不禁用 iconv 会在 make 的时候报错

mac 编译php报错

最近才使用 mac 系统,编译 php 的时候如果不禁用 iconv ,编译能通过,但是 make 的时候会报错,具体情况写在下面,有朋友帮忙解释一下这个问题吗?

系统

macOS 10.14.2

config.nice 文件内容

#! /bin/sh
#
# Created by configure

'./configure' \
'--prefix=/usr/local/php/php7.3' \
'--with-config-file-scan-dir=/usr/local/php/php7.3/etc/conf.d' \
'--enable-pcntl' \
'--with-iconv=/usr/local/Cellar/libiconv/1.15/' \
"$@"

make 报错内容

Undefined symbols for architecture x86_64:
  "_libiconv", referenced from:
      _php_iconv_string in iconv.o
      __php_iconv_strlen in iconv.o
      _zif_iconv_substr in iconv.o
      __php_iconv_strpos in iconv.o
      _zif_iconv_mime_encode in iconv.o
      __php_iconv_appendl in iconv.o
      _php_iconv_stream_filter_append_bucket in iconv.o
      ...
  "_libiconv_close", referenced from:
      _php_iconv_string in iconv.o
      __php_iconv_strlen in iconv.o
      _zif_iconv_substr in iconv.o
      __php_iconv_strpos in iconv.o
      _zif_iconv_mime_encode in iconv.o
      __php_iconv_mime_decode in iconv.o
      _php_iconv_stream_filter_factory_create in iconv.o
      ...
  "_libiconv_open", referenced from:
      _php_iconv_string in iconv.o
      __php_iconv_strlen in iconv.o
      _zif_iconv_substr in iconv.o
      __php_iconv_strpos in iconv.o
      _zif_iconv_mime_encode in iconv.o
      __php_iconv_mime_decode in iconv.o
      _php_iconv_stream_filter_factory_create in iconv.o
      ...
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [sapi/cli/php] Error 1
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 1
  1. ./configure --with-iconv=/usr/local/opt/libiconv
  2. 修改Makefile文件:搜索-liconv,应该是在EXTRA_LIBS = 这一行里,将其替换为/usr/local/opt/libiconv/lib/libiconv.dylib
  3. make
  4. sudo make install
4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!