【系统环境】
操作系统:OS X 10.11.5
Xcode:7.3.1
【注意】 编译之前,需要安装 xcode、Homebrew 套件!
Mac Pro 安装 Homebrew 软件包管理工具 1、准备相关软件包,统一放到 /usr/local/src/php 目录下:
http://cn2.php.net/distributions/php-5.6.21.tar.gz
http://ncu.dl.sourceforge.net/project/mhash/mhash/0.9.9.9/mhash-0.9.9.9.tar.gz
ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/libmcrypt/libmcrypt-2.5.7.tar.gz
http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz
https://sourceforge.net/projects/libpng/files/libpng16/1.6.21/libpng-1.6.21.tar.xz/download
http://www.ijg.org/files/jpegsrc.v9a.tar.gz
http://www.bzip.org/1.0.6/bzip2-1.0.6.tar.gz
http://download.savannah.gnu.org/releases/freetype/freetype-2.4.12.tar.gz
http://ftp.gnu.org/gnu/gettext/gettext-0.19.tar.gz 2、安装依赖库
# 安装 libmcrypt
cd /usr/local/src/php
tar -xzvf ./libmcrypt-2.5.7.tar.gz
cd ./libmcrypt-2.5.7
./configure
sudo make
sudo make install
# 安装 libmhash
cd /usr/local/src/php
tar -xzvf ./mhash-0.9.9.9.tar.gz
cd ./mhash-0.9.9.9
./configure
sudo make
sudo make install
# 安装 libiconv
cd /usr/local/src/php
tar -xzvf ./libiconv-1.14.tar.gz
cd ./libiconv-1.14
./configure
sudo make
sudo make install
# 安装 bzip2
cd /usr/local/src/php
tar -xzvf ./bzip2-1.0.6.tar.gz
cd ./bzip2-1.0.6
sudo make
sudo make install
# 安装 libpng (png图片处理, GD库依赖)
cd /usr/local/src/php
tar -xzvf ./libpng-1.6.21.tar.xz
cd ./libpng-1.6.21
./configure
sudo make
sudo make install
# 安装 ibjpeg (jpg图片处理, GD库依赖)
cd /usr/local/src/php
tar -xzvf ./jpegsrc.v9a.tar.gz
cd ./jpeg-9a
./configure
sudo make
sudo make install
# 安装 freetype
cd /usr/local/src/php
tar -xzvf ./freetype-2.4.12.tar.gz
cd ./freetype-2.4.12
./configure
sudo make
sudo make install
# 安装 gettext
cd /usr/local/src/php
tar -xzvf ./gettext-0.19.tar.gz
cd ./gettext-0.19
./configure
sudo make
sudo make install 3、安装PHP
# 解压PHP安装包
cd /usr/local/src/php
tar -xzvf ./php-5.6.21.tar.gz
cd ./php-5.6.21
Undefined symbols for architecture x86_64:
"_libiconv_open", referenced from:
_do_convert in gdkanji.o
_convert in encodings.o
"_libiconv", referenced from:
_do_convert in gdkanji.o
_convert in encodings.o
"_libiconv_close", referenced from:
_do_convert in gdkanji.o
_convert in encodings.o
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status
make: *** [libs/libphp5.bundle] Error 1
$ nm /usr/lib/libiconv.dylib | grep iconv
00000000000f1af0 S ___iconv_2VersionNumber
00000000000f1b90 S ___iconv_2VersionString
00000000000f60f0 D __libiconv_version
000000000000a1e1 T _iconv
000000000000a5a0 T _iconv_canonicalize 0000000000013164 T _iconv_close 0000000000013171 T _iconv_open
000000000000a72c T _iconvctl
000000000000a20f T _iconvlist
0000000000014dbd T _libiconv_relocate
0000000000014cff T _libiconv_set_relocation_prefix
$ nm /usr/local/lib/libiconv.dylib | grep iconv
00000000000f90c0 D __libiconv_version
0000000000002f10 T _iconv_canonicalize
0000000000002650 T _libiconv 0000000000002680 T _libiconv_close 00000000000011d0 T _libiconv_open
0000000000002690 T _libiconv_open_into
0000000000017970 t _libiconv_relocate
00000000000fa7a8 b _libiconv_relocate.initialized.b
00000000000178b0 T _libiconv_set_relocation_prefix
0000000000002bc0 T _libiconvctl
0000000000002d00 T _libiconvlist