编译安装php, ./configure之后继续 make时,因为有options --with-openssl,报错: ld: symbol(s) not found for architecture x86_64
此时打开目录下的
Makefile文件,大约101行左右,找到:
EXTRA_LIBS =,
批量替换其中的
-lcrypto和
-lssl
替换前,该行内容:
1 |
EXTRA_LIBS = -lcrypto -lssl -lcrypto -lresolv -lmcrypt -lltdl -lintl -lpng -lz -ljpeg -lcrypto -lssl -lcrypto -lz -lcrypto -lssl -lcrypto -lm -lxml2 -lz -licucore -lm -lxml2 -lz -licucore -lm -lfreetype -lxml2 -lz -licucore -lm -lxml2 -lz -licucore -lm -lxml2 -lz -licucore -lm -lxml2 -lz -licucore -lm |
替换后,该行内容:
1 2 |
#因为我手动编译的openssl在/data/amp/openssl/1.0.2u EXTRA_LIBS = /data/amp/openssl/1.0.2u/lib/libcrypto.a /data/amp/openssl/1.0.2u/lib/libssl.a /data/amp/openssl/1.0.2u/lib/libcrypto.a -lresolv -lmcrypt -lltdl -lintl -lpng -lz -ljpeg /data/amp/openssl/1.0.2u/lib/libcrypto.a /data/amp/openssl/1.0.2u/lib/libssl.a /data/amp/openssl/1.0.2u/lib/libcrypto.a -lz /data/amp/openssl/1.0.2u/lib/libcrypto.a /data/amp/openssl/1.0.2u/lib/libssl.a -lcrypto -lm -lxml2 -lz -licucore -lm -lxml2 -lz -licucore -lm -lfreetype -lxml2 -lz -licucore -lm -lxml2 -lz -licucore -lm -lxml2 -lz -licucore -lm -lxml2 -lz -licucore -lm |
ps:如果其他扩展出现这个问题也可以用这个方法解决。比如iconv,就把-liconv替换成 /usr/local/Cellar/libiconv/1.16/lib/libiconv.dylib