0 现象

在 Arch 下编译 OpenWRT (15.05) cmcurl 时报错:

[ 28%] Linking C executable LIBCURL
lib/libcmcurl.a(openssl.c.o): In function `cert_stuff`:
openssl.c:(.text+0x97a): undefined reference to `sk_num`
openssl.c:(.text+0x99a): undefined reference to `sk_pop`
openssl.c:(.text+0xa21): undefined reference to `sk_num`
openssl.c:(.text+0xa62): undefined reference to `sk_pop_free`
lib/libcmcurl.a(openssl.c.o): In function `Curl_ossl_init`:
openssl.c:(.text+0xf74): undefined reference to `SSL_load_error_strings`
openssl.c:(.text+0xf79): undefined reference to `SSL_library_init`
openssl.c:(.text+0xf89): undefined reference to `OPENSSL_add_all_algorithms_noconf`
lib/libcmcurl.a(openssl.c.o): In function `Curl_ossl_cleanup`:
openssl.c:(.text+0xfad): undefined reference to `EVP_cleanup`
openssl.c:(.text+0xfb2): undefined reference to `ERR_free_strings`
lib/libcmcurl.a(openssl.c.o): In function `verifyhost`:
openssl.c:(.text+0x1a7a): undefined reference to `sk_num`
openssl.c:(.text+0x1a9a): undefined reference to `sk_value`
lib/libcmcurl.a(openssl.c.o): In function `ossl_connect_step1`:
openssl.c:(.text+0x29a5): undefined reference to `SSLv23_client_method`
lib/libcmcurl.a(openssl.c.o): In function `X509V3_ext`:
openssl.c:(.text+0x3a77): undefined reference to `sk_num`
openssl.c:(.text+0x3aab): undefined reference to `sk_value`
openssl.c:(.text+0x3d5c): undefined reference to `sk_num`
lib/libcmcurl.a(openssl.c.o): In function `get_cert_chain`:
openssl.c:(.text+0x3fe2): undefined reference to `sk_num`
openssl.c:(.text+0x4061): undefined reference to `sk_value`
lib/libcmcurl.a(openssl.c.o): In function `Curl_ossl_version`:
openssl.c:(.text+0x61c3): undefined reference to `SSLeay`
collect2: error: ld returned 1 exit status

看得出来应该是相关库未链接成功。

1 解决方案

查阅了相关文档,发现这些方法是在老的 OpenSSL 中存在的,首先先安装老版本:

$ sudo pacman -S openssl-1.0

使用软链接的方式,更改默认库的指向使用老版本即可(若已有软链接,需要先删除),如:

# rm libcrypto.so
# rm libssl.so
# ln -s libcrypto.so.1.0.0 libcrypto.so
# ln -s libssl.so.1.0.0 libssl.so

在 Arch 下编译 OpenWRT cmcurl 问题与解决方案的更多相关文章

  1. debian下编译openwrt固件

    参考文章:Ubuntu下编译OpenWRT固件 我买的路由器是RG100A-AA,采用了bcm63xx系列的芯片. 下载openwrt源码: svn co svn://svn.openwrt.org/ ...

  2. (七)ubuntu下编译openwrt内核的环境配置

    首先安装基本开发环境: sudo apt-get install ssh vim samba tftp nfs 安装编译openwrt须要的包: 解压openwrt包编译出错: Build depen ...

  3. mac osx 下编译 OpenWrt

    默认的文件系统hfs大小写不敏感.新建一个磁盘镜像文件并合式化为hfs+, 然后挂载到系统中. hdiutil create -size 20g -fs "Case-sensitive HF ...

  4. Ubuntu12.10编译openwrt遇到的错误

    由于Openwrt有很多工具是要先编译的,在Ubuntu12.10平台下编译openwrt时就遇到了下面这样的错误:elf.cpp: In static member function 'static ...

  5. Windows下编译vpx获得各个项目VS2010解决方案的步骤

    最近研究了一下几种常见的视频编码器:x264,x265,vpx.本文简单记录一下它们的编译方法. x264,x265,vpx这三个开源的视频编码器可以说是当今“最火”的视频编码器.x264现在占据着H ...

  6. centos6.8下搭建编译openwrt的环境

    1. 安装必要软件 su root yum install zlib-devel zlib-static -y 2. 编译openwrt 请参考这里

  7. 转:小白编译openwrt固件教程

    原文地址 编译openwrt固件并没有想象的那么复杂,我也是个小白,以下内容是我将网络上的编译教程稍微进行了一下整合.因为我发现很多编译教程没有说明如何更改flash相关配置.   安装ubuntu, ...

  8. Android 环境下编译FFmpeg

    Android 环境下编译FFmpeg 开发环境:Ubuntu 12.04.2 LTS , android-sdk-linux, android-ndk-r8e 一 .X264 编译 1.    X2 ...

  9. ubuntu14.04下编译安装ambari-2.4.2.0

    ubuntu14.04下编译安装ambari-2.4.2.0 编译前的准备工作 准备工作有: 系统参数 系统依赖(编译环境) 离线安装包 java环境 maven环境 Nodejs环境 git环境 a ...

随机推荐

  1. 【Alpha】——Seventh Scrum Meeting

    一.今日站立式会议照片 二.每个人的工作 成员 昨天已完成的工作 今天计划完成的工作 李永豪 将项目做成APK 用户界面改善 郑靖涛 协助设计账目一览表板块 用户界面改善 杨海亮 查询功能测试 用户界 ...

  2. 201521123118《java与程序设计》第14周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多数据库相关内容. 2. 书面作业 1. MySQL数据库基本操作 建立数据库,将自己的姓名.学号作为一条记录插入.(截图,需出现自 ...

  3. json:JSONObject与JSONArray的使用

    1.JAR包简介 要使程序可以运行必须引入JSON-lib包,JSON-lib包同时依赖于以下的JAR包: commons-lang.jar commons-beanutils.jar commons ...

  4. [03] Servlet继承关系和生命周期

    1.Servlet的继承关系 假如现有我们自定义的一个Servlet,继承HttpServlet,那么实际上它的继承链如下图:   可以看到,核心的部分在于: 两个顶级接口 Servlet Servl ...

  5. Java Classloader机制解析(转)

    做Java开发,对于ClassLoader的机制是必须要熟悉的基础知识,本文针对Java ClassLoader的机制做一个简要的总结.因为不同的JVM的实现不同,本文所描述的内容均只限于Hotspo ...

  6. Akka(26): Stream:异常处理-Exception handling

    akka-stream是基于Actor模式的,所以也继承了Actor模式的“坚韧性(resilient)”特点,在任何异常情况下都有某种整体统一的异常处理策略和具体实施方式.在akka-stream的 ...

  7. MongoDB 索引篇

    MongoDB 索引篇 索引的简介 索引可以加快查询的速度,但是过多的索引或者规范不好的索引也会影响到查询的速度.且添加索引之后的对文档的删除,修改会比以前速度慢.因为在进行修改的时候会对索引进行更新 ...

  8. Eclipse 多行复制并且移动失效

    Eclipse  有个好用的快捷键  即 多行复制 并且移动 但是 用 Win7 的 电脑 的 时候 发现屏幕 在 旋转 解决方案: 打开Intel的显卡控制中心 把旋转  的 快捷键 进行更改 就好 ...

  9. OC——多态

    书接上文,上文提到继承一个很大用途的是为了更好的实现多态,现在我们就来看看OC的多态. 多态:顾名思义就是好多种状态,以前学C#时候印象最深刻的例子是好多个类共同实现同一个接口,然后把这些类的对象都装 ...

  10. 学习率 Learning Rate

    本文从梯度学习算法的角度中看学习率对于学习算法性能的影响,以及介绍如何调整学习率的一般经验和技巧. 在机器学习中,监督式学习(Supervised Learning)通过定义一个模型,并根据训练集上的 ...