zoukankan      html  css  js  c++  java
  • OpenSSL Windows下编译 和 SymbolLink的妙用

    编译环境:VS2008,ActivePerl 5.14.2.1402

    1. 安装ActivePerl, 安装完成后, 系统环境变量中已经将C:\Perl\site\bin加入Path
    2. 进入VS2008的命令行编译环境,如下图:

    image

    如果用VC6编译, 设置编译环境用:

    C:\Program Files\Microsoft Visual Studio\VC98\Bin\VCVARS32.BAT

    1. 进入openssl解压后的根目录:cd D:\Code\ThirdSDK\openssl\openssl-1.0.1c
    2. perl configure VC-WIN32
    3. 在根目录下执行:ms\do_ms,do_ms是个bat文件,须在根目下执行,否则某些路径找不到;
    4. 然后nmake -f ms\ntdll.mak

    ntdll.mak - 对应编译成dll动态连接库, nt.mak对应编译成静态连接库;

    编译成debug版本的, 需要修改do_ms.bat

    打开do_ms.bat, 修改:

    perl util\mk1mf.pl debug no-asm VC-WIN32 >ms\nt.mak
    perl util\mk1mf.pl debug dll no-asm VC-WIN32 >ms\ntdll.mak
    perl util\mk1mf.pl debug no-asm VC-CE >ms\ce.mak
    perl util\mk1mf.pl debug dll no-asm VC-CE >ms\cedll.mak

    顺便记录一下一个“乌龙”:

    看到openssl中的头文件都这样包含(很多开源代码都这样),

    #include <openssl/x509.h>
    #include <openssl/evp.h>
    ……

    当时查了一下, 发现x509.h在crypto\x509目下, evp.h在crypto\evp下,当下就想,这样包含

    该怎么设置包含路径呢,环境变量不好设,project中的include也不好设,后来在编译openssl时,

    才发现include目录(乌龙),openssl的开发者用这个目录中的头文件很巧妙的解决了这个问题,

    这些头文件都是些symlink,symlink完成头文件相对路径的一一映射,POSIX的东西了解太少!

    image

    原来在Window下写驱动时,经常用到IoCreateSymbolicLink,今天查了一下,在Platform

    SDK中,也有CreateSymbolLink这个API,不过要Vista以上版本才支持;还有一个

    CreateHardLink,这个Windows 2000以上就可以支持,但CreateHardLink只支持对文件创建

    HardLink. 具体就不啰唣,MSDN比我说的清楚;眨眼

  • 相关阅读:
    17. Letter Combinations of a Phone Number
    77. Combinations
    90. Subsets II
    78. Subsets
    275. H-Index II
    154. Find Minimum in Rotated Sorted Array II
    153. Find Minimum in Rotated Sorted Array
    树状数组区间查询和单点更新
    树状数组区间查询和单点更新
    最小生成树 kuangbin专题最后一个题
  • 原文地址:https://www.cnblogs.com/crunchyou/p/2649001.html
Copyright © 2011-2022 走看看