Windows10系统,用VS2010编译libtrmp静态库

在Windows10下,用VS2010编译libtrmp静态库

第一步:准备openssl的库文件

编译高版本编译低版本,方式不同,注意区分。我测试,用低版本的方式,去编译高版本,没有结果。

第二步:准备zlib的库文件

第三步:开始编译TRMP

1. 下载rtmp 源码:http://rtmpdump.mplayerhq.hu/download/

根据源码包的时间,可以推断,openssl的库,应该是比较旧的库。

2. 新建VS2010win32控制台项目静态库不需要预编译

3. 将rtmpdump-2.3 解压,拿出其中的librtmp文件夹,放入项目中,如下图所示:

5. include中,包含的是openssl的头文件,以及zlib的头文件,如下所示:

6. lib 中,包含的是编译好的静态库,目前是32位release的静态库文件

7. 将libtrmp的头文件,和源文件,分别加载进项目中

8. 更改属性

(1)个人需要这个字符集,如果你需要,可以不设置。

 

(2)包含目录,采用相对路径,方便移植。

(3)输入:_CRT_SECURE_NO_WARNINGS;_WINSOCK_DEPRECATED_NO_WARNINGS

(4)添加lib文件中的库名称。libeary32.lib;ssleay32.lib;zlibstat.lib;

至此设置完成。

9. 右键,生成项目。出现如下问题,

解决方案如下:添加一个下划线。

10. 刚开始的时候,我用的是openssl-1.1.1d的版本,结果出现如下错误,各种找不到结构体,结构体未定义。后来发现,openssl两个版本,编译之后,库名称都不一样。

高版本的动态库是这样的:  +   

低版本的静态库是这样的:

1>amf.c
1>d:\project3\libtrmpwindows\libtrmpwindows\librtmp\rtmp_sys.h(43): warning C4005: “EWOULDBLOCK”: 宏重定义
1>c:\program files (x86)\windows kits\10\include\10.0.17763.0\ucrt\errno.h(125): note: 参见“EWOULDBLOCK”的前一个定义
1>hashswf.c
1>d:\project3\libtrmpwindows\libtrmpwindows\librtmp\rtmp_sys.h(43): warning C4005: “EWOULDBLOCK”: 宏重定义
1>c:\program files (x86)\windows kits\10\include\10.0.17763.0\ucrt\errno.h(125): note: 参见“EWOULDBLOCK”的前一个定义
1>d:\project3\libtrmpwindows\libtrmpwindows\librtmp\hashswf.c(98): warning C4013: “strncasecmp”未定义;假设外部返回 int
1>d:\project3\libtrmpwindows\libtrmpwindows\librtmp\hashswf.c(292): error C2079: “ctx”使用未定义的 struct“hmac_ctx_st”
1>d:\project3\libtrmpwindows\libtrmpwindows\librtmp\hashswf.c(314): warning C4133: “函数”: 从“int *”到“HMAC_CTX *”的类型不兼容
1>d:\project3\libtrmpwindows\libtrmpwindows\librtmp\hashswf.c(332): warning C4133: “函数”: 从“int *”到“HMAC_CTX *”的类型不兼容
1>d:\project3\libtrmpwindows\libtrmpwindows\librtmp\hashswf.c(339): warning C4133: “函数”: 从“int *”到“HMAC_CTX *”的类型不兼容
1>d:\project3\libtrmpwindows\libtrmpwindows\librtmp\hashswf.c(585): warning C4013: “HMAC_CTX_init”未定义;假设外部返回 int
1>d:\project3\libtrmpwindows\libtrmpwindows\librtmp\hashswf.c(585): warning C4133: “函数”: 从“int *”到“HMAC_CTX *”的类型不兼容
1>d:\project3\libtrmpwindows\libtrmpwindows\librtmp\hashswf.c(640): warning C4133: “函数”: 从“int *”到“HMAC_CTX *”的类型不兼容
1>d:\project3\libtrmpwindows\libtrmpwindows\librtmp\hashswf.c(651): warning C4013: “HMAC_CTX_cleanup”未定义;假设外部返回 int
1>log.c
1>d:\project3\libtrmpwindows\libtrmpwindows\librtmp\rtmp_sys.h(43): warning C4005: “EWOULDBLOCK”: 宏重定义
1>c:\program files (x86)\windows kits\10\include\10.0.17763.0\ucrt\errno.h(125): note: 参见“EWOULDBLOCK”的前一个定义
1>正在生成代码...
1>已完成生成项目“libtrmpWindows.vcxproj”的操作 - 失败。
========== 全部重新生成: 成功 0 个,失败 1 个,跳过 0 个 ==========
发布了417 篇原创文章 · 获赞 156 · 访问量 8万+

猜你喜欢

转载自blog.csdn.net/qq_34732729/article/details/104271289
今日推荐