在MacOS中编译Nginx源码时遇到的问题

1.编译时遇到"ld: symbol(s) not found for architecture x86_64"

产生错误的原因是 nginx 在调用 openssl 的源码编译时, 调错了 configure 文件, 最终没能正确编译出需要的 openssl x86_64 库文件。解决方案,修改Makefile。

  • 执行./configure后,修改objs/Makefile文件
将下面一行
&& ./config --prefix=/Users/zhangtao/SourceCode/github/nginx/openssl-1.0.2l/.openssl no-shared  \

替换为:

&& ./Configure darwin64-x86_64-cc --prefix=/Users/zhangtao/SourceCode/github/nginx/openssl-1.0.2l/.openssl no-shared  \

继续执行make/make install 应该会成功。