美文网首页
Windows下如何编译OpenSSL以及cmake如何集成Op

Windows下如何编译OpenSSL以及cmake如何集成Op

作者: 生活简单些 | 来源:发表于2020-01-08 09:58 被阅读0次

    最近项目需要将live555项目转成cmake的项目,然后发现最新的live555依赖OpenSSL, 在linux下安装OpenSSL很容易, Windows下似乎需要自己编译源码:

    Ubuntu Linux下安装openssl通过apt就能安装,然后cmake就能找到它:

    apt install openssl libssl-dev
    

    安装成功后可以看下安装信息:

    ~$ openssl version -a
    
    OpenSSL 1.1.1  11 Sep 2018
    built on: Tue Nov 12 16:58:35 2019 UTC
    platform: debian-amd64
    options:  bn(64,64) rc4(16x,int) des(int) blowfish(ptr) 
    compiler: gcc -fPIC -pthread -m64 -Wa,--noexecstack -Wall -Wa,--noexecstack -g -O2 -fdebug-prefix-map=/build/openssl-kxN_24/openssl-1.1.1=. -fstack-protector-strong -Wformat -Werror=format-security -DOPENSSL_USE_NODELETE -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_CPUID_OBJ -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DKECCAK1600_ASM -DRC4_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DX25519_ASM -DPADLOCK_ASM -DPOLY1305_ASM -DNDEBUG -Wdate-time -D_FORTIFY_SOURCE=2
    OPENSSLDIR: "/usr/lib/ssl"
    ENGINESDIR: "/usr/lib/x86_64-linux-gnu/engines-1.1"
    Seeding source: os-specific
    

    cmake中如何集成OpenSSL:

    find_package(OpenSSL REQUIRED)
    target_link_libraries(your_project_name OpenSSL::SSL)
    

    但是,Windows下没有apt-get install 这种包管理器, 想用获取OpenSSL的lib以及头文件,必须手动编译源码,步骤如下:

    1. 手动安装openssl前要安装perl,官网地址: https://www.activestate.com/products/perl/downloads/
    2. 手动下载 openssl,官网地址:https://www.openssl.org/source/,当前版本是openssl-1.1.1d.tar.gz
    3. 解压OpenSSL放到C盘(可自己随意指定):c:\openssl-1.1.1d;
    4. cd进入c:\openssl-1.1.1d, 下面步骤是confire和install:
    ps>perl Configure VC-WIN64 no-asm --prefix=c:\openssl-1.1.1d\build
    ps>nmake
    ps>nmake install // 必须是以管理员权限进入powershell来执行此操作
    

    VC-WIN64:这里是vc++64位环境编译,如果指定target为32位,既改为VC-WIN32
    no-asm:不使用“NASM”优化,否则要单独下载
    --prefix:openssl安装目录, 必须是绝对路径

    如何集成到windows下的cmake项目呢?
    其实,cmake脚本不需要改动任何配置,仅仅需要在Windows系统变量里定义一个新的变量:
    OPENSSL_ROOT_DIR 环境变量的值即为openssl编译成功的库所在路径,即:c:\openssl-1.1.1d\build.

    that's all!!!

    相关文章

      网友评论

          本文标题:Windows下如何编译OpenSSL以及cmake如何集成Op

          本文链接:https://www.haomeiwen.com/subject/brpjactx.html