美文网首页编程小技
MinGW下编译openssl, json-c

MinGW下编译openssl, json-c

作者: 粗识名姓 | 来源:发表于2016-10-16 21:23 被阅读766次

    目的:在windows环境下,编译开源库openssl
    环境:windows 10 ,Mingw及自带msys工具,openssl-1.0.2j

    工具主要使用MinGW(含msys1.0), IDE选用CodeBlock 13.12
    下载OpenSSL源码, 这里以openssl-1.0.2j.tar.gz版本为例。下载json-c源码

    OpenSSL编译

    参考文章

    1. 启动msys的命令行工具msys.bat, 解压缩 openssl-1.0.2j.tar.gz
    cd /      # 根目录为 MinGW\msys\1.0\
    mkdir workShop     # 新建工作目录, 在win下把压缩包移进来
    cd workShop
    tar -zxvf openssl-1.0.2j.tar.gz     # 解压
    cd openssl-1.0.2j
    
    1. 编译方法主要参见INSTALL文件或INSTALL.WIN32文件, 这里是为了编译在win系统中用的, 所以要参考后者。
      找到说明文件INSTALL.WIN32中的 GNU C (MinGW/MSYS) 小节, 依次执行命令:

    $ ./config [需要动态链接库的话, 加参数 shared]
    [等待...]
    $ make
    [长长的等待...]
    $ make test
    [长长长的等待...]

    编译完以后比较坑, 完全不像INSTALL.WIN32文件所说有什么inc32 out32之类的文件夹, 所有的文件都是和源文件在一起乱放的, 想不出好办法分开, 只能借用神器BC(Beyond Compare)了。把现在的目录重命名为openssl-1.0.2jj,把源文件压缩包重新解压了一遍。用BC比较两个目录,把孤立的文件单独复制到一个新目录openssl保存。如下图所示:

    将openssl目录复制到需要的项目源文件目录中,编辑项目CMakeLists.txt, 将 ${CMAKE_CURRENT_SOURCE_DIR}/openssl/include 插入 INCLUDE_DIRECTORIES
    ${CMAKE_CURRENT_SOURCE_DIR}/openssl/apps 插入 link_directories 中。
    使用cmake-gui重建CodeBlock项目,用CodeBlock编译项目。
    在CodeBlock中编译通过。下一步将是解决mysql.h的问题,参考

    json-c 编译

    解压源码,重命名.h.WIN32的头文件为.h, 修改CMakeLists.txt第27行:

    ${CMAKE_CURRENT_BINARY_DIR}/include/config.h

    改为:

    ./config.h

    打开cmake-gui, Configure, 如下图选择, Finish:

    结束后点Generate, Done!


    用CodeBlock打开上面json-c/cm路径下的json-c.cbp文件, 点齿轮编译(Ctrl-F9), 没有红字信息就好, 蓝色的仅仅是些可以忽略的警告(warning)


    完成后, json-c/cm路径下的libjson-c.a文件即为所需的库文件,把它和json-c目录下的json.h复制到所需的项目路径即可!

    Over!

    相关文章

      网友评论

        本文标题:MinGW下编译openssl, json-c

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