在Borland C ++ Builder,Win 8.1下构建OpenSSL

时间:2015-07-16 15:00:26

标签: c++ openssl c++builder borland-c++

我正在按照INSTALL.W32(各种OpenSSL版本)的说明进行操作,通常是:

TotalPrice = 800
//Output: $ 800,00
TotalPrice = 800.23
//Output: $ 800,00
TotalPrice = 800.63
//Output: $ 801,00

现在,我在尝试构建时遇到两种错误:

对于OpenSSL< 1.0.0

 * Configure for building with Borland Builder:
   > perl Configure BC-32

 * Create the appropriate makefile
   > ms\do_nasm

 * Build
   > make -f ms\bcb.mak

否则

nasmw -f obj -d__omf__ -ocrypto\md5\asm\m5_win32.obj .\crypto\md5\asm\m5_win32.asm
'nasmw' is not recognized as an internal or external command,
operable program or batch file.

是的,我对使用Borland C ++ Builder 5感到不舒服,但我对它无能为力,是的,如果其他一切都失败了,我会考虑Shining Light选项。

2 个答案:

答案 0 :(得分:0)

我不使用OpenSSL,而是从你的文本中得到一些提示:

  1. NASM

    • 不是Borland编译器的默认汇编程序
    • 您需要先下载并安装
    • (它是免费的,是我过去使用过的最好的编译器之一)
  2. 在包含OpenSSL或包含错误的顺序

    之前,您遗漏了一些#define
    • 这就是为什么你有第一个警告,也很可能是错误
    • 某些lib需要添加配置#defines(由某些特定IDE添加)
    • 指定使用什么编译器,平台,endianess ...
    • 之前的任何内容
    • 通常如果你包含错误的顺序,则为lib文件的某些实例定义定义,但不是为所有实例定义
    • 因此请尝试重新排序包含
    • 有时会帮助在lib之前包含一些其他的东西,比如conio,stdio,windows,......
    • 确定缺少哪个定义或错误打开stat.h
    • 并查找#ifdef
    • 周围的#ifndef S_IFMT

答案 1 :(得分:0)

最新版本(1.0.2d)的解决方案是:

  1. 从randfile中删除额外参数(如评论所述,这是不必要的),
  2. 编辑ms \ bcb.mak,搜索-DMD5_ASM -DSHA1_ASM -DRMD160_ASM 并改为-DMD5_NO_ASM -DSHA1_NO_ASM -DRMD160_NO_ASM。 (SHA,MD5和RMD160存在未解决的外部错误,它们基本上无法在asm中编译)。
  3. 还包括其他一些步骤,但它们只是针对我的环境。

相关问题