VC编译openssl 3.0.7

·

  1. 安装ActivePerl和NASM
  2. 执行perl Configure no-asm no-shared no-sse2 zlib VC-WIN64A –prefix=d:\openssl-3.0.7 –with-zlib-include=d:\zlib-1.2.13 –with-zlib-lib=d:\zlib-1.2.13\zlib.lib 生成makefile
  3. 执行nmake 进行编译(或者使用jom)
  4. 执行nmake install进行安装
  • VC-WIN64A 使用VC编译器编译WIN64位版本,A表示架构为X64(区别于IA64)
  • VC-WIN32 使用VC编译器编译WIN32位版本
  • no-shared 编译为静态库
  • shared 编译为动态库(默认选项)
  • zlib 使用zlib静态库
  • zlib-dynamic 只用zlib动态库
  • no-zlib 不使用zlib

可以通过修改第二步生成的makefile文件改变具体的编译链接选项,默认选项为/GF /Gs0 /Gy /MD,在3.1.3版本中发现已经没有这个/MD了,代码生成选项已经移动到了下面。下面是一些选项的含义。

  • /O2(最大速度优化)
  • /GF(消除重复的字符串)
  • /Gs(控制堆栈检查调用)
  • /Gy(启用函数级链接)

可以根据需要在CFLAGS中调整代码生成选项,我这里使用/MT选项,记得删除文件中其它代码生成选项。若想编译调试版本需要将/MT改为/MDd。

如果想使用jom -j<线程数>进行多线程编译,则必须给CFLAGS指定/FS选项。

修改CFLAGS选项
删除其它代码生成选项

另外还有一些编译链接选项是分开的,也就是静态库、动态库、可执行程序都有自己独特的编译选项,修改这些内容的时候要注意区分。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注