飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 938|回复: 5

[C/C++] 记录一次编译openssl的过程

[复制链接]
  • TA的每日心情
    开心
    2024-12-31 00:26
  • 签到天数: 77 天

    [LV.6]常住居民II

    发表于 2024-10-8 17:07:20 | 显示全部楼层 |阅读模式
    本帖最后由 冷月孤心 于 2024-10-8 18:36 编辑

    如果是编译3.x,首先找到quic_record_rx.h将它保存为unicode 1200编码即可,不要去设置语言了,这是无用功!网上千篇一律的no asm,我要提醒大家不要no asm 后期使用的时候有可能出现错误。我已经体会过了。打开C++命令行输入编译命令,这里我整理了一下,全部列出来吧:
    perl Configure VC-WIN64A  no-shared  --prefix=D:\openssl1.1.1_win64
    perl Configure VC-WIN32  no-shared   --prefix=D:\openssl1.1.1_win32
    perl Configure VC-WIN64A  --prefix=D:\openssl1.1.1_x64_DEBUG
    perl Configure VC-WIN32  --prefix=D:\openssl1.1.1_x32_DEBUG
    nmake       //如果想要在静态库输出调试信息就用这条命令。

    nmake /f Makefile mod=release   //这里需要说明一下,如果编译的是Release则按这条命令,否则编译会出来很多警告信息,提示找不到PDB.这条命令不能用于DEBUG模式。
    如果在makefile里面删除掉更好。
    LIB_CFLAGS=/Zi /Fdossl_static.pdb /MT /Zl $(CNF_CFLAGS) $(CFLAGS)
    修改为

    LIB_CFLAGS=/MT /Zl $(CNF_CFLAGS) $(CFLAGS)
    删除下面的数据:
    1.

    -del /Q /F $(LIBS) libcrypto.* libssl.* ossl_static.pdb
    2.

        @if "$(SHLIBS)"=="" \
         "$(PERL)" "$(SRCDIR)\util\copy.pl" ossl_static.pdb "$(libdir)"
    编译出来的库使用无警告信息了。

    QQ截图20241008183423.png

    省略测试环节。编译win64要使用两个库文件,否则报错:
    #pragma comment (lib, "crypt32")
    #pragma comment (lib, "ws2_32")

    nmake  install
    x86的编译x86的库,x64的编译x64库,头文件都是一样的。
    编译完成后批量改名
    @echo off
    rename D:\openssl1.1.1_x32_DEBUG\lib\libcrypto.lib libcrypto_x86.lib
    rename D:\openssl1.1.1_x32_DEBUG\lib\libssl.lib libssl_x86.lib
    rename D:\openssl1.1.1_x64_DEBUG\lib\libcrypto.lib libcrypto_x64.lib
    rename D:\openssl1.1.1_x64_DEBUG\lib\libssl.lib libssl_x64.lib
    rename D:\openssl1.1.1_win32\lib\libcrypto.lib libcrypto_static_x86.lib
    rename D:\openssl1.1.1_win32\lib\libssl.lib libssl_static_x86.lib
    rename D:\openssl1.1.1_win64\lib\libcrypto.lib libcrypto_static_x64.lib
    rename D:\openssl1.1.1_win64\lib\libssl.lib libssl_static_x64.lib
    4.png



    我编译好的库
    5.png
    #pragma comment (lib, "crypt32")
    #pragma comment (lib, "ws2_32")
    #ifdef _DEBUG
    #ifdef _WIN64
    #pragma comment(lib,"libssl_x64.lib")
    #pragma comment(lib,"libcrypto_x64.lib")
    #else
    #pragma comment(lib,"libssl_x86.lib")
    #pragma comment(lib,"libcrypto_x86.lib")
    #endif
    #else
    #ifdef _WIN64
    #pragma comment(lib,"libssl_static_x64.lib")
    #pragma comment(lib,"libcrypto_static_x64.lib")
    #else
    #pragma comment(lib,"libssl_static_x86.lib")
    #pragma comment(lib,"libcrypto_static_x86")
    #endif
    #endif




    评分

    参与人数 3威望 +3 飘云币 +4 收起 理由
    xsping838 + 1 PYG有你更精彩!
    speedboy + 2 + 2 PYG有你更精彩!
    0×Ret + 1 + 1 分享精神,是最值得尊敬的!

    查看全部评分

    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2025-1-9 01:13
  • 签到天数: 202 天

    [LV.7]常住居民III

    发表于 2024-10-9 08:10:18 | 显示全部楼层
    表哥威武牛逼
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2024-9-26 10:34
  • 签到天数: 28 天

    [LV.4]偶尔看看III

    发表于 2024-10-12 11:43:11 | 显示全部楼层
    原来是冷大哥,过来学习了。
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2025-1-14 13:38
  • 签到天数: 76 天

    [LV.6]常住居民II

    发表于 2024-10-14 21:21:08 | 显示全部楼层
            PYG有你更精彩!
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表