• openssl/rc4.h: 没有那个文件或目录


    遇到问题

    需要在Linux构建一个动态库项目,构建出一个Linux平台的so,然后遇到如下问题。即openssl的头文件没有找到,因为是刚安装的ubuntu系统,故应该是openssl的库没有安装
    在这里插入图片描述

    解决方案

    安装openssl dev/开发包,终端 输入 sudo apt-get install libssl-dev,安装过程如下

    sudo apt-get install libssl-dev
    正在读取软件包列表... 完成
    正在分析软件包的依赖关系树... 完成
    正在读取状态信息... 完成                 
    将会同时安装下列软件:
      libssl3
    建议安装:
      libssl-doc
    下列【新】软件包将被安装:
      libssl-dev
    下列软件包将被升级:
      libssl3
    升级了 1 个软件包,新安装了 1 个软件包,要卸载 0 个软件包,有 23 个软件包未被升级。
    需要下载 4,271 kB 的归档。
    解压缩后会消耗 12.4 MB 的额外空间。
    您希望继续执行吗? [Y/n] Y
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    为什么是安装dev而不是release包,即不sudo apt-get install libssl。因为我们的C++项目里依赖/使用openssl,然后编译的时候需要openssl相关的头文件。libss-dev 包含有opensll库跟其对应的头文件

    retry 构建,项目使用make来构建

    make all
    // 过几分钟后,构建出了我们需要的so
    
    • 1
    • 2

    dev vs release

    即开发包与releasw的区别主什么?
    主要的区别是有没有头文件,-dev后台是有头文件的
    在这里插入图片描述

    ssl的头文件在那里?

    在 /usr/include/openssl

    parallels@dev:/usr/include/openssl$ tree
    .
    ├── aes.h
    ├── asn1err.h
    ├── asn1.h
    ├── asn1_mac.h
    ├── asn1t.h
    ├── asyncerr.h
    ├── async.h
    ├── bioerr.h
    ├── bio.h
    ├── blowfish.h
    ├── bnerr.h
    ├── bn.h
    ├── buffererr.h
    ├── buffer.h
    ├── camellia.h
    ├── cast.h
    ├── cmac.h
    ├── cmperr.h
    ├── cmp.h
    ├── cmp_util.h
    ├── cmserr.h
    ├── cms.h
    ├── comperr.h
    ├── comp.h
    ├── conf_api.h
    ├── conferr.h
    ├── conf.h
    ├── conftypes.h
    ├── core_dispatch.h
    ├── core.h
    ├── core_names.h
    ├── core_object.h
    ├── crmferr.h
    ├── crmf.h
    ├── cryptoerr.h
    ├── cryptoerr_legacy.h
    ├── crypto.h
    ├── cterr.h
    ├── ct.h
    ├── decodererr.h
    ├── decoder.h
    ├── des.h
    ├── dherr.h
    ├── dh.h
    ├── dsaerr.h
    ├── dsa.h
    ├── dtls1.h
    ├── ebcdic.h
    ├── ecdh.h
    ├── ecdsa.h
    ├── ecerr.h
    ├── ec.h
    ├── encodererr.h
    ├── encoder.h
    ├── engineerr.h
    ├── engine.h
    ├── e_os2.h
    ├── err.h
    ├── esserr.h
    ├── ess.h
    ├── evperr.h
    ├── evp.h
    ├── fipskey.h
    ├── fips_names.h
    ├── hmac.h
    ├── httperr.h
    ├── http.h
    ├── idea.h
    ├── kdferr.h
    ├── kdf.h
    ├── lhash.h
    ├── macros.h
    ├── md2.h
    ├── md4.h
    ├── md5.h
    ├── mdc2.h
    ├── modes.h
    ├── objectserr.h
    ├── objects.h
    ├── obj_mac.h
    ├── ocsperr.h
    ├── ocsp.h
    ├── opensslv.h
    ├── ossl_typ.h
    ├── param_build.h
    ├── params.h
    ├── pem2.h
    ├── pemerr.h
    ├── pem.h
    ├── pkcs12err.h
    ├── pkcs12.h
    ├── pkcs7err.h
    ├── pkcs7.h
    ├── proverr.h
    ├── provider.h
    ├── prov_ssl.h
    ├── randerr.h
    ├── rand.h
    ├── rc2.h
    ├── rc4.h
    ├── rc5.h
    ├── ripemd.h
    ├── rsaerr.h
    ├── rsa.h
    ├── safestack.h
    ├── seed.h
    ├── self_test.h
    ├── sha.h
    ├── srp.h
    ├── srtp.h
    ├── ssl2.h
    ├── ssl3.h
    ├── sslerr.h
    ├── sslerr_legacy.h
    ├── ssl.h
    ├── stack.h
    ├── storeerr.h
    ├── store.h
    ├── symhacks.h
    ├── tls1.h
    ├── trace.h
    ├── tserr.h
    ├── ts.h
    ├── txt_db.h
    ├── types.h
    ├── uierr.h
    ├── ui.h
    ├── whrlpool.h
    ├── x509err.h
    ├── x509.h
    ├── x509v3err.h
    ├── x509v3.h
    └── x509_vfy.h
    
    0 directories, 133 files
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92
    • 93
    • 94
    • 95
    • 96
    • 97
    • 98
    • 99
    • 100
    • 101
    • 102
    • 103
    • 104
    • 105
    • 106
    • 107
    • 108
    • 109
    • 110
    • 111
    • 112
    • 113
    • 114
    • 115
    • 116
    • 117
    • 118
    • 119
    • 120
    • 121
    • 122
    • 123
    • 124
    • 125
    • 126
    • 127
    • 128
    • 129
    • 130
    • 131
    • 132
    • 133
    • 134
    • 135
    • 136
    • 137
    • 138

    ssl的库文件在那里?

    在 /lib/x86_64-linux-gnu
    在这里插入图片描述
    PS: openssl有两个库文件,crypto跟ssl,另外各分别有动态库与静态库

    相关文档

  • 相关阅读:
    学会这些VRay渲染器HDRI照明技巧,轻松搞定3ds Max
    Python字符串介绍详解
    k8s_设置dns
    SSM+老年人社区服务平台 毕业设计-附源码211711
    看完这篇文章,你就入门了所有有关API的热门概念!
    社区访谈丨一个IT新人眼中的JumpServer开源堡垒机
    react的useState源码分析
    储能直流侧计量表DJSF1352
    关于PSINS运动轨迹仿真模块的理解和思考
    18、Java的类变量、类方法;static 关键字;静态导入;初始化块;静态初始化块;单例模式
  • 原文地址:https://blog.csdn.net/SCHOLAR_II/article/details/127666850