Mac下安装Tengine错误 ld: symbol(s) not found for architecture x86_64

作者: shaneZhang 分类: 互联网技术 发布时间: 2017-06-22 18:32

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

解决办法就是:

先运行Tengine源码目录下运行 $ ./configure –with-openssl=/Users/yuqingzhang/openssl-1.0.2l

然后在objs里,打开Makefile,

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

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

然后再make就编译通过了

如果觉得我的文章对您有用,请随意打赏。如果有其他问题请联系博主QQ(909491009)或者下方留言!

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注