免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: taotao_112206_c

[C] 大家来帮忙,windows 编译openssl,报错了,无法解决 [复制链接]

论坛徽章:
0
发表于 2013-12-27 14:02 |显示全部楼层
回复 10# star_in_sky


   我的环境是xp 下的VC6 ,环境变量是VCVARS32.bat 不管我是在单击还是直接从cmd下运行这个bat文件都不行。
   有点郁闷

论坛徽章:
1
双子座
日期:2013-11-14 17:43:24
发表于 2013-12-27 14:33 |显示全部楼层
那你打开cmd窗口,然后在里面运行vcvars32.bat,看看有什么错误消息?

论坛徽章:
0
发表于 2013-12-27 15:47 |显示全部楼层
回复 12# star_in_sky

Microsoft Windows XP [版本 5.1.2600]
(C) 版权所有 1985-2001 Microsoft Corp.

C:\Documents and Settings\Administrator>cd "C:\Program Files\Microsoft Visual Studio\VC98\Bin\"

C:\Program Files\Microsoft Visual Studio\VC98\Bin>VCVARS32.BAT
Setting environment for using Microsoft Visual C++ tools.
C:\Program Files\Microsoft Visual Studio\VC98\Bin>

结果还是不行。。。。。
G:\openssl-0.9.7a>nmake -f ms\ntdll.mak

Microsoft (R) Program Maintenance Utility   Version 6.00.8168.0
Copyright (C) Microsoft Corp 1988-1998. All rights reserved.

' in macroak(519) : fatal error U1001: syntax error : illegal character '
Stop.

悲催


   

论坛徽章:
1
双子座
日期:2013-11-14 17:43:24
发表于 2013-12-27 15:52 |显示全部楼层
你执行:
ms\do_nasm
之后
在执行
nmake -f ms\ntdll.mak
(不要执行ms\do_ms)

如果还有错误,我个人建议你升级VS到新的版本。
VC6时98年的产品,实在是太老了。

现在VS产品都有Express版本,免费的,编译这样的程序非常合适。

XP系统可能不能够安装较高的VS产品,你可以试试看:
vs2005
or
vs2008

论坛徽章:
0
发表于 2013-12-27 18:04 |显示全部楼层
回复 14# star_in_sky

用VS2005还是不行,编译不通过,可能是C语言版本的问题
但是我把VS2005生成ntdll.mak拿到VC6下来编译,可以使。
通过比较发现2005 和vc6直接区别就是生成makefile不一样,就是VC6生成的nt.mak有点问题,具体是
一、出现"VM"标记,
二、少了目录;
    这个是2005生成的makefile
     $(INCL_D)\cryptlib.h: $(SRC_D)\crypto\cryptlib.h
        $(CP) $(SRC_D)\crypto\cryptlib.h $(INCL_D)\cryptlib.h
   这个是VC6的
  $(INCL_D)\cryptlib.h: $(SRC_D)\\cryptlib.h
        $(CP) $(SRC_D)\\cryptlib.h $(INCL_D)\cryptlib.h
  那应该是在执行ms\ms_do出了问题,还没找出来,有相同问题兄弟,可以告诉我下,谢谢了
   

论坛徽章:
0
发表于 2013-12-28 13:53 |显示全部楼层
本帖最后由 taotao_112206_cu 于 2013-12-28 14:06 编辑

解决了,在perl脚本mk1mf.PL中加上"s/\r$" 就解决了
红色字符就是加上的
open(IN,"<$infile" || die "unable to open $infile!\n";
$_=<IN>;
for (;
{
chop;
s/\r$//; #remove carriage return too!
($key,$val)=/^([^=]+)=(.*)/;
if ($key eq "RELATIVE_DIRECTORY"
{
if ($lib ne ""
谢谢大家了,特别感谢@wenlq
@star_in_sky 二位了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP