转自https://blog.csdn.net/pehao/article/details/49280857
第一步 Openssl
1.下载Openssl.exe安装后即可使用,网上很多都使用源代码编译,结果折腾半年都不行。最终发现可以直接使用注意选择对应操作系统我选择的是Win64 OpenSSL v1.0.2d Light。
2.安装openssl到C盘下,C:\OpenSSL-Win64。后续使用到的内容为:
头文件目录: C:\OpenSSL-Win64\include
链接库文件:C:\OpenSSL-Win64\lib\libeay32.lib 和 C:\OpenSSL-Win64\lib\ssleay32.lib
第二步 zlib
1.下载zlib包,并解压。下载地址:http://zlib.net/
2.运行VisualStudio Command Prompt,其实就是VS2012 X64 兼容工具命令提示符,按照网上专家们说的:
切到zlib-2.1.5目录,分别执行以下命令
>cd contrib\masmx86
>bld_ml32.bat
提示XXXml64.exe不是内部命令。恶心惨了。最终解决方式:
将C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\x86_amd64\ml64.exe复制到zlib-1.2.8\contrib\masmx64下面,再按照命令执行即可。
PS:比如我zlib-1.2.8在F盘中,在命令提示符中
a. >F:
b. >F:\DEMO\zlib-1.2.8\contrib\masmx64\
c. >bld_ml64.bat
完成!
3.编译
a.打开F:\DEMO\zlib-1.2.8\contrib\vstudio\vc11\zlibvc.sln
b.按照网上说的,在zlibstat工程属性中,去掉预编译宏 ZLIB_WINAPI
c.只编译,zlibstat项目即可。
头文件目录:F:\DEMO\zlib-1.2.8\下所有.H文件,简单点就是排除文件夹其他文件全部使用。
依赖库文件:F:\DEMO\zlib-1.2.8\contrib\vstudio\vc11\x64\ZlibStatDebug\zlibstat.lib
第三部编译librtmp库
1.下载rtmpdump ,下载地址:http://rtmpdump.mplayerhq.hu/
2.在VS2012中创建C++项目中:
a.WIN32控制台应用程序(命名Librtmp)
b.下一步中选择静态库,取消勾选:预编译头和安全开发生命周期XXOO,完成。
c.在工程文件目录中(PS:在解决方案窗体中,点击项目右键,选择“在资源管理器中打开文件夹”),创建include和lib文件夹。
3.解压下载的文件夹,将rtmpdump-2.3文件夹下的\rtmpdump-2.3\librtmp中的所有文件拷贝到2步骤C的选择的文件夹中。
4.在项目中设置对应的.H文件和C文件,
选择打开目录中的所有.h文件
按照对应的方式,在源文件中添加所有的.c文件。
5.添加应用库
a.将第一步中的头文件库以及第二步中的头文件库全部拷贝到include文件夹中
b.设置项目头文件引用
C.将第一步和第二步中的.lib文件复制到\Librtmp\Librtmp\lib文件夹中。
d.设置库引用,
库名称
最终项目样子
编译完成!!
ex:
1、修改rtmp_sys.h文件注释掉下面部分
#if 0
#ifdef _MSC_VER /* MSVC */
#define snprintf _snprintf
#define strcasecmp stricmp
#define strncasecmp strnicmp
#define vsnprintf _vsnprintf
#endif
#endif
2、The POSIX name for this item is deprecated.错误
属性->c/c++->预处理器->预处理器定义 中添加:
_CRT_SECURE_NO_DEPRECATE
_CRT_NONSTDC_NO_DEPRECATE
3、所有预处理宏:
_CRT_SECURE_NO_WARNINGS
_WINSOCK_DEPRECATED_NO_WARNINGS
_CRT_NONSTDC_NO_DEPRECATE