fatal error: openssl/ssl.h 以及 libssl-dev 安装失败 解决方案

记录下问题,便于日后解决

在编译相关资源时候,提示fatal error: openssl/ssl.h: 没有那个文件或目录

如下:

......................

[ 12%] Building CXX object src/jsonrpc/CMakeFiles/jsonrpc.dir/rpcprotocolclient.cpp.o

[ 14%] Building CXX object src/jsonrpc/CMakeFiles/jsonrpcStatic.dir/specificationwriter.cpp.o
[ 16%] Building C object src/jsonrpc/CMakeFiles/jsonrpc.dir/connectors/mongoose.c.o
[ 18%] Building CXX object src/jsonrpc/CMakeFiles/jsonrpc.dir/connectors/httpclient.cpp.o
/mnt/Code_App/MOS/3rdparty/json/jsonrpc/src/jsonrpc/connectors/mongoose.c:313:25: fatal error: openssl/ssl.h: 没有那个文件或目录
 #include
                         ^
compilation terminated.
src/jsonrpc/CMakeFiles/jsonrpc.dir/build.make:169: recipe for target 'src/jsonrpc/CMakeFiles/jsonrpc.dir/connectors/mongoose.c.o' failed

make[3]: *** [src/jsonrpc/CMakeFiles/jsonrpc.dir/connectors/mongoose.c.o] Error 1

..........................


经过网上相关查询,需要安装类似如下工具:

sudo apt-get install cmake
sudo apt-get install libcurl4-openssl-dev
sudo apt-get install openssl
sudo apt-get install libssl-dev build-essential zlibc zlib-bin libidn11-dev libidn11
sudo apt-get install minizip


在安装libssl-dev时,又遇到如下问题


root@A10212301:/usr/include# apt-get install libssl-dev
正在读取软件包列表... 完成
正在分析软件包的依赖关系树       
正在读取状态信息... 完成       
有一些软件包无法被安装。如果您用的是 unstable 发行版,这也许是
因为系统无法达到您要求的状态造成的。该版本中可能会有一些您需要的软件
包尚未被创建或是它们已被从新到(Incoming)目录移出。
下列信息可能会对解决问题有所帮助:


下列软件包有未满足的依赖关系:
 libssl-dev : 依赖: libssl1.0.0 (= 1.0.2d-0ubuntu1) 但是 1.0.2d-0ubuntu1.2 正要被安装
E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。



又是网上一通搜索,可以使用aptitude

如下:


dpkg -l *libssl*
期望状态=未知(u)/安装(i)/删除(r)/清除(p)/保持(h)
| 状态=未安装(n)/已安装(i)/仅存配置(c)/仅解压缩(U)/配置失败(F)/不完全安装(H)/触发器等待(W)/触发器未决(T)
|/ 错误?=(无)/须重装(R) (状态,错误:大写=故障)
||/ 名称                    版本             体系结构:       描述
+++-=======================-================-================-====================================================
un  libssl-dev              <无>             <无>             (无可用描述)
ii  libssl-doc              1.0.2d-0ubuntu1  all              Secure Sockets Layer toolkit - development documenta
ii  libssl1.0.0:i386        1.0.2d-0ubuntu1. i386             Secure Sockets Layer toolkit - shared libraries


apt-get install aptitude
正在读取软件包列表... 完成
正在分析软件包的依赖关系树       
正在读取状态信息... 完成       
下列软件包是自动安装的并且现在不需要了:
  linux-headers-4.2.0-16 linux-headers-4.2.0-16-generic linux-image-4.2.0-16-generic
  linux-image-extra-4.2.0-16-generic
使用'apt-get autoremove'来卸载它(它们)。
将会安装下列额外的软件包:
  aptitude-common libcwidget3v5
建议安装的软件包:
  aptitude-doc-en aptitude-doc debtags tasksel libcwidget-dev
下列【新】软件包将被安装:
  aptitude aptitude-common libcwidget3v5
升级了 0 个软件包,新安装了 3 个软件包,要卸载 0 个软件包,有 1 个软件包未被升级。
需要下载 2,441 kB 的软件包。
解压缩后会消耗掉 10.0 MB 的额外空间。
您希望继续执行吗? [Y/n] y
获取:1 http://archive.ubuntu.com/ubuntu/ wily/main aptitude-common all 0.7.3-1ubuntu1 [747 kB]
获取:2 http://archive.ubuntu.com/ubuntu/ wily/main libcwidget3v5 i386 0.5.17-3.1ubuntu2 [301 kB]                     
获取:3 http://archive.ubuntu.com/ubuntu/ wily/main aptitude i386 0.7.3-1ubuntu1 [1,393 kB]                           
下载 2,441 kB,耗时 26秒 (90.9 kB/s)                                                                                  
正在选中未选择的软件包 aptitude-common。
(正在读取数据库 ... 系统当前共安装有 255363 个文件和目录。)
正准备解包 .../aptitude-common_0.7.3-1ubuntu1_all.deb  ...
正在解包 aptitude-common (0.7.3-1ubuntu1) ...
正在选中未选择的软件包 libcwidget3v5:i386。
正准备解包 .../libcwidget3v5_0.5.17-3.1ubuntu2_i386.deb  ...
正在解包 libcwidget3v5:i386 (0.5.17-3.1ubuntu2) ...
正在选中未选择的软件包 aptitude。
正准备解包 .../aptitude_0.7.3-1ubuntu1_i386.deb  ...
正在解包 aptitude (0.7.3-1ubuntu1) ...
正在处理用于 man-db (2.7.4-1) 的触发器 ...
正在设置 aptitude-common (0.7.3-1ubuntu1) ...
正在设置 libcwidget3v5:i386 (0.5.17-3.1ubuntu2) ...
正在设置 aptitude (0.7.3-1ubuntu1) ...
update-alternatives: 使用 /usr/bin/aptitude-curses 来在自动模式中提供 /usr/bin/aptitude (aptitude)
正在处理用于 libc-bin (2.21-0ubuntu4) 的触发器 ...
root@A10212301:/usr/include# 


root@A10212301:/usr/include# aptitude install libssl-dev
下列“新”软件包将被安装。         
  libssl-dev{b} 
0 个软件包被升级,新安装 1 个, 0 个将被删除, 同时 1 个将不升级。
需要获取 1,138 kB 的存档。 解包后将要使用 5,681 kB。
下列软件包存在未满足的依赖关系:
 libssl-dev : 依赖: libssl1.0.0 (= 1.0.2d-0ubuntu1) 但是 1.0.2d-0ubuntu1.2 已安装。
下列动作将解决这些依赖关系:


     保持 下列软件包于其当前版本:
1)     libssl-dev [未安装的]      






是否接受该解决方案?[Y/n/q/?] n
下列动作将解决这些依赖关系:


     降级 下列软件包:                                                
1)     libssl1.0.0 [1.0.2d-0ubuntu1.2 (now) -> 1.0.2d-0ubuntu1 (wily)]






是否接受该解决方案?[Y/n/q/?] y
下列软件包将被“降级”:
  libssl1.0.0 
下列“新”软件包将被安装。
  libssl-dev 
0 个软件包被升级,新安装 1 个, 1 个被降级, 0 个将被删除, 同时 1 个将不升级。
需要获取 2,054 kB 的存档。 解包后将要使用 5,728 kB。
您要继续吗?[Y/n/?] y
读取: 1 http://archive.ubuntu.com/ubuntu/ wily/main libssl1.0.0 i386 1.0.2d-0ubuntu1 [916 kB]
读取: 2 http://archive.ubuntu.com/ubuntu/ wily/main libssl-dev i386 1.0.2d-0ubuntu1 [1,138 kB]                        
已下载 2,054 kB,耗时 26秒 (76.9 kB/s)                                                                                 
正在预设定软件包 ...
dpkg:警告:即将把 libssl1.0.0:i386 从 1.0.2d-0ubuntu1.2 降级到 1.0.2d-0ubuntu1
(正在读取数据库 ... 系统当前共安装有 255492 个文件和目录。)
正准备解包 .../libssl1.0.0_1.0.2d-0ubuntu1_i386.deb  ...
正在将 libssl1.0.0:i386 (1.0.2d-0ubuntu1) 解包到 (1.0.2d-0ubuntu1.2) 上 ...
正在选中未选择的软件包 libssl-dev:i386。
正准备解包 .../libssl-dev_1.0.2d-0ubuntu1_i386.deb  ...
正在解包 libssl-dev:i386 (1.0.2d-0ubuntu1) ...
正在设置 libssl1.0.0:i386 (1.0.2d-0ubuntu1) ...
正在设置 libssl-dev:i386 (1.0.2d-0ubuntu1) ...
正在处理用于 libc-bin (2.21-0ubuntu4) 的触发器 ...
                                 
root@A10212301:/usr/include# 
root@A10212301:/usr/include# 
root@A10212301:/usr/include# 
root@A10212301:/usr/include# dpkg -l *libssl*
期望状态=未知(u)/安装(i)/删除(r)/清除(p)/保持(h)
| 状态=未安装(n)/已安装(i)/仅存配置(c)/仅解压缩(U)/配置失败(F)/不完全安装(H)/触发器等待(W)/触发器未决(T)
|/ 错误?=(无)/须重装(R) (状态,错误:大写=故障)
||/ 名称                    版本             体系结构:       描述
+++-=======================-================-================-====================================================
ii  libssl-dev:i386         1.0.2d-0ubuntu1  i386             Secure Sockets Layer toolkit - development files
ii  libssl-doc              1.0.2d-0ubuntu1  all              Secure Sockets Layer toolkit - development documenta
ii  libssl1.0.0:i386        1.0.2d-0ubuntu1  i386             Secure Sockets Layer toolkit - shared libraries
root@A10212301:/usr/include# 


大功告成



你可能感兴趣的:(Linux)