vs2010 编译x86 openssl zlib librtmp
编译 openssl
1. 安装 ActivePerl-5.24.0.2400-MSWin32-x64-300558.exe
2. 设置vs2010 环境变量
首先进入到 visual studio指定目录中,
执行命令:cd C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin
执行命令:vcvars32.bat
3. 首先把openssl-1.0.1c解压放到C盘中,openssl所在目录为:C:\openssl-1.0.1c
然后用命令进入到openssl的目录中:cd C:\openssl-1.0.1
接着实现命令: perl Configure VC-WIN32 no-asm --prefix=D:\src\rtmp\openssl-1.0.1c\x86
注意:当你下载的openssl是高版本的话,如openssl-1.0.2g,需要在这里加上no-asm,表示不使用汇编,如果你不加上的话,
在执行nmake命令时会出错。但是如果下载是openssl-1.0.1c,貌似不用加no-asm也可以成功。
4. 执行命令:“ms\do_ms.bat”
5. 执行命令:“nmake -f ms\ntdll.mak” //nmake -f ms\ntdll.mak clean 清除x86_64的内容
6. nmake -f ms\ntdll.mak install
成功则会在D:\src\rtmp\openssl-1.0.1c\x86目录下生成bin、include、lib、ssl四个文件夹。
编译 zlib
1. 设置环境变量 C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin
首先把zlib-1.2.8.tar.gz解压放到C盘中,zlib-1.2.8所在目录为:C:\zlib-1.2.8
然后用命令进入到openssl的目录中:cd C:\zlib-1.2.8\contrib\masmx86
执行 bld_ml32.bat
2. 到 C:\zlib-1.2.8\contrib\vstudio\vc10目录,打开zlibvc.sln
看到好多项目 zlibstat 是zlib的静态库,zlibvc是zlib的动态库。
修改平台设置win32
生成 zlibstat.lib,拷贝 zconf.h 和 zlib.h 到include路径
记得去掉 宏 ZLIB_WINAPI,但是x64 不去掉也没有报错
否则报错 1>hashswf.obj : error LNK2019: 无法解析的外部符号 _inflateEnd,该符号在函数 _RTMP_HashSWF 中被引用
1>hashswf.obj : error LNK2019: 无法解析的外部符号 _inflateInit_,该符号在函数 _RTMP_HashSWF 中被引用
1>hashswf.obj : error LNK2019: 无法解析的外部符号 _inflate,该符号在函数 "unsigned int __cdecl swfcrunch(void *,unsigned int,unsigned int,void *)" (?swfcrunch@@YAIPAXII0@Z) 中被引用
vs2010 编译x64 openssl zlib librtmp
和x86编译相似。
建立librtmp静态库工程。和测试rtmp的工程
测试rtmp的是时候
注意:x86的平台两种写法都可以,x64的平台第一种写法都可以,第二种写法会出现栈溢出的错误,原因不清楚
第一种写法
RTMP *rtmp = NULL;// = { 0 };
rtmp = RTMP_Alloc();
RTMP_Init(rtmp);
第二种写法
RTMP rtmp = { 0 };
RTMP_Init(rtmp);
编译 openssl
1. 安装 ActivePerl-5.24.0.2400-MSWin32-x64-300558.exe
2. 设置vs2010 环境变量
首先进入到 visual studio指定目录中,
执行命令:cd C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin
执行命令:vcvars32.bat
3. 首先把openssl-1.0.1c解压放到C盘中,openssl所在目录为:C:\openssl-1.0.1c
然后用命令进入到openssl的目录中:cd C:\openssl-1.0.1
接着实现命令: perl Configure VC-WIN32 no-asm --prefix=D:\src\rtmp\openssl-1.0.1c\x86
注意:当你下载的openssl是高版本的话,如openssl-1.0.2g,需要在这里加上no-asm,表示不使用汇编,如果你不加上的话,
在执行nmake命令时会出错。但是如果下载是openssl-1.0.1c,貌似不用加no-asm也可以成功。
4. 执行命令:“ms\do_ms.bat”
5. 执行命令:“nmake -f ms\ntdll.mak” //nmake -f ms\ntdll.mak clean 清除x86_64的内容
6. nmake -f ms\ntdll.mak install
成功则会在D:\src\rtmp\openssl-1.0.1c\x86目录下生成bin、include、lib、ssl四个文件夹。
编译 zlib
1. 设置环境变量 C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin
首先把zlib-1.2.8.tar.gz解压放到C盘中,zlib-1.2.8所在目录为:C:\zlib-1.2.8
然后用命令进入到openssl的目录中:cd C:\zlib-1.2.8\contrib\masmx86
执行 bld_ml32.bat
2. 到 C:\zlib-1.2.8\contrib\vstudio\vc10目录,打开zlibvc.sln
看到好多项目 zlibstat 是zlib的静态库,zlibvc是zlib的动态库。
修改平台设置win32
生成 zlibstat.lib,拷贝 zconf.h 和 zlib.h 到include路径
记得去掉 宏 ZLIB_WINAPI,但是x64 不去掉也没有报错
否则报错 1>hashswf.obj : error LNK2019: 无法解析的外部符号 _inflateEnd,该符号在函数 _RTMP_HashSWF 中被引用
1>hashswf.obj : error LNK2019: 无法解析的外部符号 _inflateInit_,该符号在函数 _RTMP_HashSWF 中被引用
1>hashswf.obj : error LNK2019: 无法解析的外部符号 _inflate,该符号在函数 "unsigned int __cdecl swfcrunch(void *,unsigned int,unsigned int,void *)" (?swfcrunch@@YAIPAXII0@Z) 中被引用
vs2010 编译x64 openssl zlib librtmp
和x86编译相似。
建立librtmp静态库工程。和测试rtmp的工程
测试rtmp的是时候
注意:x86的平台两种写法都可以,x64的平台第一种写法都可以,第二种写法会出现栈溢出的错误,原因不清楚
第一种写法
RTMP *rtmp = NULL;// = { 0 };
rtmp = RTMP_Alloc();
RTMP_Init(rtmp);
第二种写法
RTMP rtmp = { 0 };
RTMP_Init(rtmp);