欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

windows 下 用 Visual Studio 2017 编译 librtmp

程序员文章站 2022-06-17 08:46:25
...

第一、下载 librtmp (rtmpdump)源码,把 librtmp目录下的 非 .h 和 非 .c 文件 全部删除掉
第二、用 Microsotf Visual Studio 2017 创建一个 静态库 (lib)项目,将librtmp目录下的所有 .h 和 .c 文件 加载到 此 项目中。
第三、打开 rtmp_sys.h 文件 ,找到并注释掉下面的三句 语句:

#ifdef _WIN32

#include <winsock2.h>
#include <ws2tcpip.h>

#ifdef _MSC_VER	/* MSVC */
**//#define snprintf _snprintf   //此句注释掉**
#define strcasecmp stricmp
#define strncasecmp strnicmp
**//#define vsnprintf _vsnprintf  //此句注释掉**
#endif

#define GetSockError()	WSAGetLastError()
#define SetSockError(e)	WSASetLastError(e)
#define setsockopt(a,b,c,d,e)	(setsockopt)(a,b,c,(const char *)d,(int)e)

**//下面这句注释掉
//#define EWOULDBLOCK	WSAETIMEDOUT	/* we don't use nonblocking, but we do use timeouts */**
#define sleep(n)	Sleep(n*1000)
#define msleep(n)	Sleep(n)
#define SET_RCVTIMEO(tv,s)	int tv = s*1000
#else /* !_WIN32 */

第四、打开rtmp.c 文件 找到 static struct urlopt { 这句
在其前面 添加一句 :

     typedef long off_t;

第五、在 项目 – 属性 – c\c++ – 预处理器 — 预处理器定义中
添加以下宏:

NO_CRYPTO
_CRT_NONSTDC_NO_DEPRECATE
_CRT_SECURE_NO_WARNINGS
_WINSOCK_DEPRECATED_NO_WARNINGS

其中 NO_CRYPTO 是不打开openssl



第六、在 项目 – 属性 – c\c++ – 预编译头 中 设置成 不使用预编译头

第七、 编译、链接 通过