源码下载链接:http://dss.macosforge.org/
源码版本: 5.5.5版本
电脑环境:visual studio2010,window 7 x64系统。
用VS2010打开WinNTSupport文件夹下的.dsw工程,全部转换vs2010。
 
使用vs2010编译的遇到一些问题和解决方法:
(1)          提示:winsock2某些函数重定义。
方法:DarwinStreamingSrvr6.0.3-Source\CommonUtilitiesLib\OSHeaders.h(209)的#include<windows.h> 前面加上:
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
 
(2)          提示:error C2039: 'timeGetTime' : is not a member of '`global namespace''
 方法:包含头文件Mmsystem.h,并在工程设置中引入该Winmm.lib库就OK了。
注意:加在其他头文件前面,并且形式如下,三行都要加上:
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include <Mmsystem.h>
 
(3)          提示:error C1083: 无法打开包括文件:“grp.h”: No such file or directory
方法:将#include <grp.h>
#include <membership.h>
#include <pwd.h>
#include <unistd.h>
这个几个都注释掉,然后就会发现有两个函数会出错,好,那就暂时将这两个函数注释掉先。后来我编译中查找了下,好像貌似在编译过程中,所有项目中,没有那个调用了这两个函数。所有注释就没关系了。
 
(4)          无法打开包括文件:“arpa/inet.h”: No such file or directory
方法:注释掉就可以了或者用下面的语句来代替
#defineWIN32_LEAN_AND_MEAN
#include<windows.h>
#pragmacomment(lib, "wsock32.lib")
参考资料:
?url=0ZJZZTYyfhUIpS1Vd-jMZHP6gbMRwyG5iYlUzAH_uHQTemUtopRbKK_-FfAA0O2knaP7sgs8bfkzofTB5KldAK
(5)          error C2039: “strlcpy”: 不是“`globalnamespace'”的成员
方法:strlcpy不是windows的函数,将strlcpy该为对应的函数strncpy
参考资料:
(6)          error C3861: “SetTempPath”: 找不到标识符
方法:搜索下SetTempPath,其实这个函数是有的,只是被注释掉了,哎.....去掉注释就可以了。
(7)          error PRJ0002 : 错误的结果 2 (从“C:\ProgramFiles (x86)\Microsoft Visual Studio 9.0\VC\bin\cl.exe”返回)
方法:在d:/ProgramFiles/Microsoft Visual Studio 9.0/VC/bin直接点击cl.exe,然后发现少了哪个库,直接下载就好了。
一般是缺少mspdb80.dll ,所以不用下载。在\Common7\IDE中能找到。mspdbsrv.exe 或 mspdbcore.dll 丢失或者其版本和 mspdb80.dll 的版本不同,确定这三个文件的相同版本安装在系统里。
在VC安装目录下的\Common7\IDE 目录下拷贝这三个文件到安装目录下的VC\bin下即可
参考资料:
(8)          cl: 命令行 errorD8004 :“/I”需要参数
解决方法:在工程属性->C/C++选项->附加命令中有/I ,应该是指这个没有参数.工程是从VC6的工程转过来的,直接去掉就可以编译。
(9)          xxx头文件找不到
解决方法:头文件目录中添加该目录的包含就ok了。
(10)      最后就是无法解析的外部符号,这个就好办了,找到该函数在那个cpp里面,或者是哪个项目的lib中,添加进来编译就行了。
(11)      error C3861: “snprintf”: 找不到标识符
方法:snprintf也不是windows的函数,将snprintf改为对用的_snprintf就可以了
(12)      RTPStream::UDPMonitorWrite函数出错:
方法:将那几个出错的类型,改为对应的类型就好了。
修改RTPStream::UDPMonitorWrite方法为:
void RTPStream::UDPMonitorWrite(void*thePacketData, UInt32 inLen,  Bool16isRTCP)
{
   if (FALSE == fUDPMonitorEnabled || 0 == fMonitorSocket || NULL ==thePacketData)
       return;
       
   if ((0 != fPlayerToMonitorAddr) && (this->fRemoteAddr !=fPlayerToMonitorAddr))
       return;
       
  UInt16 RTCPportOffset = (TRUE == isRTCP)? 1 : 0;
 
 
   struct sockaddr_in sin;
   memset(&sin, 0, sizeof(struct sockaddr_in));
   sin.sin_family = AF_INET;
   sin.sin_addr.s_addr = htonl(fMonitorAddr);
   
   if (fPayloadType == qtssVideoPayloadType)
       sin.sin_port = (USHORT) htons(fMonitorVideoDestPort+RTCPportOffset);
   else if (fPayloadType == qtssAudioPayloadType)
       sin.sin_port = (USHORT) htons(fMonitorAudioDestPort+RTCPportOffset);
   
   if (sin.sin_port != 0)
    {
       int result = ::sendto(fMonitorSocket,(char*) thePacketData, inLen, 0,(struct sockaddr *)&sin, sizeof(struct sockaddr));
      if (DEBUG)
       {   if (result < 0)
                qtss_printf("RTCP MonitorSocket sendto failed\n");
           else if (0)
qtss_printf("RTCP MonitorSocket sendto port=%hu, packetLen=%"_U32BITARG_"\n",ntohs(sin.sin_port), inLen);
       }
    }
}

VS2010下编译安装DarwinStreamingServer5.5.5的更多相关文章

  1. libCURL开源库在VS2010环境下编译安装,配置详解

    libCURL开源库在VS2010环境下编译安装,配置详解 转自:http://my.oschina.net/u/1420791/blog/198247 http://blog.csdn.net/su ...

  2. VS2010 下编译 cocos2d-x-2.1.4

    在VS2010 下编译 cocos2d-x-2.1.4   首先感谢 cocos2d-x 团队为我们做出这么好的跨平台框架,让我们这些码农省了很多时间,事半功倍. 里沃特最近在编译 win32 版本的 ...

  3. 不要着急改代码,先想想--centos 6.8下编译安装tmux

    诸位读者新年好,2017开年第一篇博客,请允许我先问候一下看到这篇博客的诸位.写博客是我2017年定下的目标之一,希望我会坚持下去. 最近打算尝试一下tmux这个神器,于是有了这一篇关于思维方式的Bl ...

  4. centos下编译安装lnmp

    centos下编译安装lnmp 本文以centos为背景在其中编译安装nginx搭建lnmp环境. 编译安装nginx时,需要事先安装 开发包组"Development Tools" ...

  5. LINUX下编译安装PHP各种报错大集合

    本文为大家整理汇总了一些linux下编译安装php各种报错大集合 ,感兴趣的同学参考下. nginx1.6.2-mysql5.5.32二进制,php安装报错解决: 123456 [root@clien ...

  6. Redhat环境下编译安装Google Bazel

    Redhat环境下编译安装bazel 作者:Jack47 目前Google Bazel没有提供各个操作系统下的二进制安装包,只提供源代码,需要我们自己编译安装,详情可以见我翻译的中文版Google B ...

  7. linux下编译安装vim7.4并安装clang_complete插件

    linux下编译安装vim7.4并安装clang_complete插件 因为debian里软件仓库中下载安装的vim是不支持python写的插件的(可以打开vim,在命令模式先输入:py测试一下),导 ...

  8. centos7.2下编译安装&&使用-git代码库

    centos7.2下编译安装git Git简介 Git是一个分布式版本控制系统 Git vs SVN SVN是典型的集中式版本控制起,版本库集中存放在服务器,当我们用自己的电脑干活儿的时候,需要先从中 ...

  9. linux下编译安装curl

    linux下编译安装curl 1.下载curl git clone https://github.com/curl/curl.git 2.在curl目录下生成configure文件 ./buldcon ...

随机推荐

  1. 剑指offer--面试题6

    题目:由前序.中序遍历序列重建二叉树 虽然思路能想到,但是实际写却无从下手...下面重现作者代码,多多实践... #include<exception> //首先定义二叉树节点 struc ...

  2. JSP/SERVLET重定向技术综述

    1.RequestDispatcher.forward() 是在服务器端起作用,当使用forward()时,Servlet engine传递HTTP请求从当前的Servlet or JSP到另外一个S ...

  3. 安装 NoMachine(NX) client and server

    (1)Windows上直接安装nxclient-3.5.0-9.exe即可 (2)Linux上 准备linux rpms nxclient-3.5.0-7.x86_64.rpmnxnode-3.5.0 ...

  4. Unity3D 游戏开发构架篇 —— 动态大场景生成 = 区域加载+对象池管理

    项目做一个类似无尽模式的场景,想了一想,其实方法很简单,做一个相关的总结. 主要先谈一谈构架,后期附上代码. 一.区域加载 其实无尽场景的实现很简单,因为屏幕限制,那么不论何时何地,我们只能看到自己的 ...

  5. Android Activity初探

    原地址:Android Activity初探 Activity是一个应用中的组件,它为用户提供一个可视的界面,方便用户操作,比如说拔打电话.照相.发邮件或者是浏览地图等.每个activity会提供一个 ...

  6. vsftp在REDHAT,CENTOS 5中登录慢的解决办法

    vsftp在REDHAT,CENTOS 5中登录慢的解决办法 vsftp在REDHAT,CENTOS 5中不仅登录慢,至少花30秒左右,而且上传文件的速度也受影响, 经过摸索,根本原因在DNS解析上花 ...

  7. POJ 1691 Painting A Board(DFS)

    链接 题意 : 看了好长时间终于看懂题目了,将一个大矩形划分成若干小矩形,告诉你每个小矩形的左上角那个点和右下角那个点的坐标,告诉你这个小矩形要涂的颜色,每个颜色对应一个刷子,问你最少要使用几次刷子. ...

  8. hdu 4315 Climbing the Hill 博弈论

    题意:有n个人爬山,山顶坐标为0,其他人按升序给出,不同的坐标只能容纳一个人(山顶不限),Alice和Bob轮流选择一个人让他移动任意步,但不能越过前面的人,且不能和前面一个人在相同的位置.现在有一个 ...

  9. TopCoder SRM 633div1

    250pts   PeriodicJumping 题意:从起点开始,每次按找数组jump给定的长度,即jump[0], jump[1], jump[2].....jump[n-1], 向各个方向跳,跳 ...

  10. 欧拉工程第60题:Prime pair sets

    题目链接 五个数,任意两个数的任意链接后的数还是质数 满足这个条件的最小五个数的和是多少? 结果:26033 纯暴力破解: package projecteuler51to60; import jav ...