解决mac下编译安装php7.1报错:ld: symbol(s) not found for architecture x86_64

编译安装php,./configure之后继续make时,因为有options--with-openssl,报错:ld: symbol(s) not found for architecture x86_64

此时打开目录下的Makefile文件,大约101行左右,找到:EXTRA_LIBS = , 批量替换其中的-lcrypto-lssl

替换前,该行内容:

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

替换后,该行内容:

#因为我手动编译的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

此文受该文章启发

评论

评论正在提交中...请稍后
评论提交成功...