博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Nginx 安装 (mac os) 错误 ld: symbol(s) not found for architecture x86_64
阅读量:5082 次
发布时间:2019-06-13

本文共 645 字,大约阅读时间需要 2 分钟。

今天在mac os 上编译安装Nginx时候,报错:ld: symbol(s) not found for architecture x86_64, 经过一番折腾之后发现,由于Nginx依赖openssl库,查看openssl的./config 文件发现,这个问题应该是 openssl/config脚本猜对你的系统是64位,但是 会根据$KERNEL_BITS来判断是否开启x86_64编译,默认不开启,他会给你5秒时间确认是否停止编译,手动设置x86_64编译,所以默认你生成的openssl库文件是32位的,最后静态链接到nginx会出错。目前看来没有很好的方法把x86_64的参数传到openssl配置文件中 (openssl/config 猜测os架构,设置编译的参数是32位还是64位,默认是32位,然后调用openssl/Configure生成Makefile),

解决办法就是:

先运行nginx源码目录下运行

$ ./configure

然后在objs里,打开Makefile,

找到: ./config --prefix=xxx.openssl no-shared        (注释:XXX是已存在的openssl源码路径)

把该段的 ./config 改成 ./Configure darwin64-x86_64-cc 其他后面参数不变,保存

然后再make就编译通过了

转载于:https://www.cnblogs.com/powerthink/p/5437374.html

你可能感兴趣的文章
实战技能:小小微信支付业务,何必虚惊一场
查看>>
17-1 djanjo进阶-路由,视图,模板
查看>>
Shell脚本8种字符串截取方法总结
查看>>
P3254 圆桌问题
查看>>
MapReduce的运行原理
查看>>
Leetcode: Partition List
查看>>
故障转移
查看>>
清空dataset中的某行某列的数据
查看>>
盒模型
查看>>
js中闭包和作用域
查看>>
关键词提取
查看>>
装饰器,迭代器与生成器
查看>>
endpoint 理解-1
查看>>
Lambad表达式树(转)
查看>>
15 SharePreference
查看>>
24点
查看>>
各种米的营养价值
查看>>
php 处理数字为金钱格式
查看>>
学习51单片机——秒表分享
查看>>
我画你猜(微信版--游戏说明)
查看>>