crtmpserver 在VS2010下的build
2016-01-08 15:25
387 查看
Make sure that you have administrative privileges before doing the following steps.
1. 下载并安装(Microsoft Visual C++ 2008 Redistributable Package)
链接:
http://www.microsoft.com/en-us/download/details.aspx?id=29
下载并安装
Download and install “Visual C++ 2008 Redistributables”
2. 下载并安装OpenSSL
链接:
http://slproweb.com/products/Win32OpenSSL.html
下载并安装:Win32 OpenSSL v1.0.1e
If you install OpenSSL to another place than “C:\OpenSSL-Win32”,
change OpenSSL include and lib path (in project's properties)
Compile the solution using Microsoft Visual C++.
3. 下载并编译crtmpserver
可以使用TortoiseSVN下载,配置如下:
URL of repository: https://svn.rtmpd.com/crtmpserver/branches/1.0
Checkout directory: <Your desired checkout folder>
Checkout Depth: Fully recursive
Revision: Head revision
Username: anonymous
Password: <Leave this blank>
下载完成后build
When source code has been checked out successfully,
go to <checkout folder>/builders/VS2010 folder.
Inside that folder, double click the VS2010.sln file.
4. 编译出错的解决:
A. error C2593: 'operator =' is ambiguous
错误提示
crtmpserver\sources\thelib\src\protocols\liveflv\innetliveflvstream.cpp(111): error C2593: 'operator =' is ambiguous
...
crtmpserver\sources\thelib\src\protocols\liveflv\innetliveflvstream.cpp(114): error C2593: 'operator =' is ambiguous
原因:
VS2010在C++的隐式类型转换方面的bug
解决:
crtmpserver\sources\thelib\src\protocols\liveflv\innetliveflvstream.cpp由
info["audio"]["droppedPacketsCount"] = 0;
info["video"]["bytesCount"] = _videoBytesCount;
info["video"]["packetsCount"] = _videoPacketsCount;
info["video"]["droppedPacketsCount"] = 0;
改成
info["audio"]["droppedPacketsCount"] = (uint64_t)0;
info["video"]["bytesCount"] = _videoBytesCount;
info["video"]["packetsCount"] = _videoPacketsCount;
info["video"]["droppedPacketsCount"] = (uint64_t)0;
B.error LNK2019: unresolved external symbol "public: __thiscall
错误提示:
defaultprotocolfactory.obj : error LNK2019: unresolved external symbol "public: __thiscall NATTraversalProtocol::NATTraversalProtocol(void)"
原因:
thelib工程漏了这个文件:
sources\thelib\src \protocols\rtp\nattraversalprotocol.cpp
解决:
将这个文件添加到工程的
thelib->protocols->Source Files->rtp下;
重新编译工程,链接通过,OK搞定
C. 启动程序时提示
"The procedure entry point WSASendMsg could not be located in the
dynamic link library WS2_32.dll"
原因:
是系统的原因
解决:
WSASendMsg requires Vista or Server 2008, assuming Windows 7 is also
okay since it works on my tests.
具体可看链接:
https://groups.google.com/forum/?fromgroups#!searchin/c-rtmp-server/WSASendMsg|sort:relevance/c-rtmp-server/BeC4zB_wems/m6utIOP6fJAJ
VS2010编译好的工程链接:
http://download.csdn.net/download/daybreakfast/6812969
1. 下载并安装(Microsoft Visual C++ 2008 Redistributable Package)
链接:
http://www.microsoft.com/en-us/download/details.aspx?id=29
下载并安装
Download and install “Visual C++ 2008 Redistributables”
2. 下载并安装OpenSSL
链接:
http://slproweb.com/products/Win32OpenSSL.html
下载并安装:Win32 OpenSSL v1.0.1e
If you install OpenSSL to another place than “C:\OpenSSL-Win32”,
change OpenSSL include and lib path (in project's properties)
Compile the solution using Microsoft Visual C++.
3. 下载并编译crtmpserver
可以使用TortoiseSVN下载,配置如下:
URL of repository: https://svn.rtmpd.com/crtmpserver/branches/1.0
Checkout directory: <Your desired checkout folder>
Checkout Depth: Fully recursive
Revision: Head revision
Username: anonymous
Password: <Leave this blank>
下载完成后build
When source code has been checked out successfully,
go to <checkout folder>/builders/VS2010 folder.
Inside that folder, double click the VS2010.sln file.
4. 编译出错的解决:
A. error C2593: 'operator =' is ambiguous
错误提示
crtmpserver\sources\thelib\src\protocols\liveflv\innetliveflvstream.cpp(111): error C2593: 'operator =' is ambiguous
...
crtmpserver\sources\thelib\src\protocols\liveflv\innetliveflvstream.cpp(114): error C2593: 'operator =' is ambiguous
原因:
VS2010在C++的隐式类型转换方面的bug
解决:
crtmpserver\sources\thelib\src\protocols\liveflv\innetliveflvstream.cpp由
info["audio"]["droppedPacketsCount"] = 0;
info["video"]["bytesCount"] = _videoBytesCount;
info["video"]["packetsCount"] = _videoPacketsCount;
info["video"]["droppedPacketsCount"] = 0;
改成
info["audio"]["droppedPacketsCount"] = (uint64_t)0;
info["video"]["bytesCount"] = _videoBytesCount;
info["video"]["packetsCount"] = _videoPacketsCount;
info["video"]["droppedPacketsCount"] = (uint64_t)0;
B.error LNK2019: unresolved external symbol "public: __thiscall
错误提示:
defaultprotocolfactory.obj : error LNK2019: unresolved external symbol "public: __thiscall NATTraversalProtocol::NATTraversalProtocol(void)"
原因:
thelib工程漏了这个文件:
sources\thelib\src \protocols\rtp\nattraversalprotocol.cpp
解决:
将这个文件添加到工程的
thelib->protocols->Source Files->rtp下;
重新编译工程,链接通过,OK搞定
C. 启动程序时提示
"The procedure entry point WSASendMsg could not be located in the
dynamic link library WS2_32.dll"
原因:
是系统的原因
解决:
WSASendMsg requires Vista or Server 2008, assuming Windows 7 is also
okay since it works on my tests.
具体可看链接:
https://groups.google.com/forum/?fromgroups#!searchin/c-rtmp-server/WSASendMsg|sort:relevance/c-rtmp-server/BeC4zB_wems/m6utIOP6fJAJ
VS2010编译好的工程链接:
http://download.csdn.net/download/daybreakfast/6812969
相关文章推荐
- java生成UUID通用唯一识别码 (Universally Unique Identifier)
- UVa1151 Buy or Build
- IOS开发~UISCrollView与UITableView嵌套使用终极解决方案
- 在UIView页面执行pushViewController操作
- iOS Newbie - Xcode 7 & iOS 9 UITextField & UITextView
- UEditor图片路径-从后台传递参数
- 自定义UISlider的样式和滑块
- 01-08 UICollectionView 例子
- UISlider自定义高度
- UIAlertController中添加DatePicker
- It is indirectly referenced from required class file ... could not find class......
- easyUI tree以及tab的创建以及应用
- bluedroid 代码框架
- UITableView使用小结(滚动到顶部、获取cell、cell选中状态、刷新cell或者section)
- UVa 12100 - Printer Queue【队列和优先队列】
- Android 更新UI的两种方法——handler和runOnUiThread()
- Android Build类
- 【LeetCode】Repeated DNA Sequences 解题报告
- Request与Response常用方法总结
- Android Contacts (一)ContentResolver query 参数详解