VS版VLC中对LIVE555加注释遇到了一个奇怪报错现象,记录如下:
p_sys->rtsp->sendSetupCommand( *sub, default_live555_callback, False,
toBool( b_rtsp_tcp ),
toBool( p_sys->b_force_mcast && !b_rtsp_tcp ) );
if( !wait_Live555_response( p_demux ) )/***判断Setup命令是否发送成功*/
{
如上位置处加一注释,编译时会报如下一堆错误:
错误 31 error C2059: 语法错误:“delete” d:\dfb_work\vlc_0525\播放器\vlc-2.2.6.32-2013-master2\vlc-2.2.6.32-2013-master_orgin\modules\access\live555.cpp 1213 1 live555
错误 32 error C2059: 语法错误:“if” d:\dfb_work\vlc_0525\播放器\vlc-2.2.6.32-2013-master2\vlc-2.2.6.32-2013-master_orgin\modules\access\live555.cpp 1214 1 live555
错误 33 error C2143: 语法错误 : 缺少“;”(在“->”的前面) d:\dfb_work\vlc_0525\播放器\vlc-2.2.6.32-2013-master2\vlc-2.2.6.32-2013-master_orgin\modules\access\live555.cpp 1217 1 live555
错误 34 error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int d:\dfb_work\vlc_0525\播放器\vlc-2.2.6.32-2013-master2\vlc-2.2.6.32-2013-master_orgin\modules\access\live555.cpp 1217 1 live555
错误 35 error C2143: 语法错误 : 缺少“;”(在“->”的前面) d:\dfb_work\vlc_0525\播放器\vlc-2.2.6.32-2013-master2\vlc-2.2.6.32-2013-master_orgin\modules\access\live555.cpp 1220 1 live555
错误 36 error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int d:\dfb_work\vlc_0525\播放器\vlc-2.2.6.32-2013-master2\vlc-2.2.6.32-2013-master_orgin\modules\access\live555.cpp 1220 1 live555
错误 37 error C2086: “int p_sys”: 重定义 d:\dfb_work\vlc_0525\播放器\vlc-2.2.6.32-2013-master2\vlc-2.2.6.32-2013-master_orgin\modules\access\live555.cpp 1220 1 live555
错误 38 error C2065: “p_demux”: 未声明的标识符 d:\dfb_work\vlc_0525\播放器\vlc-2.2.6.32-2013-master2\vlc-2.2.6.32-2013-master_orgin\modules\access\live555.cpp 1223 1 live555
错误 39 error C2227: “->f_npt_start”的左边必须指向类/结构/联合/泛型类型 d:\dfb_work\vlc_0525\播放器\vlc-2.2.6.32-2013-master2\vlc-2.2.6.32-2013-master_orgin\modules\access\live555.cpp 1223 1 live555
错误 40 error C2227: “->f_npt_length”的左边必须指向类/结构/联合/泛型类型 d:\dfb_work\vlc_0525\播放器\vlc-2.2.6.32-2013-master2\vlc-2.2.6.32-2013-master_orgin\modules\access\live555.cpp 1223 1 live555
错误 41 error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int d:\dfb_work\vlc_0525\播放器\vlc-2.2.6.32-2013-master2\vlc-2.2.6.32-2013-master_orgin\modules\access\live555.cpp 1223 1 live555
错误 42 error C2365: “vlc_Log”: 重定义;以前的定义是“函数” d:\dfb_work\vlc_0525\播放器\vlc-2.2.6.32-2013-master2\vlc-2.2.6.32-2013-master_orgin\modules\access\live555.cpp 1223 1 live555
错误 43 error C2078: 初始值设定项太多 d:\dfb_work\vlc_0525\播放器\vlc-2.2.6.32-2013-master2\vlc-2.2.6.32-2013-master_orgin\modules\access\live555.cpp 1223 1 live555
错误 44 error C2440: “初始化”: 无法从“const char [24]”转换为“int” d:\dfb_work\vlc_0525\播放器\vlc-2.2.6.32-2013-master2\vlc-2.2.6.32-2013-master_orgin\modules\access\live555.cpp 1223 1 live555
错误 45 error C2143: 语法错误 : 缺少“;”(在“->”的前面) d:\dfb_work\vlc_0525\播放器\vlc-2.2.6.32-2013-master2\vlc-2.2.6.32-2013-master_orgin\modules\access\live555.cpp 1226 1 live555
错误 46 error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int d:\dfb_work\vlc_0525\播放器\vlc-2.2.6.32-2013-master2\vlc-2.2.6.32-2013-master_orgin\modules\access\live555.cpp 1226 1 live555
错误 47 error C2086: “int p_sys”: 重定义 d:\dfb_work\vlc_0525\播放器\vlc-2.2.6.32-2013-master2\vlc-2.2.6.32-2013-master_orgin\modules\access\live555.cpp 1226 1 live555
错误 48 error C2143: 语法错误 : 缺少“;”(在“->”的前面) d:\dfb_work\vlc_0525\播放器\vlc-2.2.6.32-2013-master2\vlc-2.2.6.32-2013-master_orgin\modules\access\live555.cpp 1227 1 live555
错误 49 error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int d:\dfb_work\vlc_0525\播放器\vlc-2.2.6.32-2013-master2\vlc-2.2.6.32-2013-master_orgin\modules\access\live555.cpp 1227 1 live555
错误 50 error C2086: “int p_sys”: 重定义 d:\dfb_work\vlc_0525\播放器\vlc-2.2.6.32-2013-master2\vlc-2.2.6.32-2013-master_orgin\modules\access\live555.cpp 1227 1 live555
错误 51 error C2059: 语法错误:“return” d:\dfb_work\vlc_0525\播放器\vlc-2.2.6.32-2013-master2\vlc-2.2.6.32-2013-master_orgin\modules\access\live555.cpp 1229 1 live555
错误 52 error C2059: 语法错误:“}” d:\dfb_work\vlc_0525\播放器\vlc-2.2.6.32-2013-master2\vlc-2.2.6.32-2013-master_orgin\modules\access\live555.cpp 1230 1 live555
错误 53 error C2143: 语法错误 : 缺少“;”(在“}”的前面) d:\dfb_work\vlc_0525\播放器\vlc-2.2.6.32-2013-master2\vlc-2.2.6.32-2013-master_orgin\modules\access\live555.cpp 1230 1 live555
错误 54 error C2143: 语法错误 : 缺少“;”(在“{”的前面) d:\dfb_work\vlc_0525\播放器\vlc-2.2.6.32-2013-master2\vlc-2.2.6.32-2013-master_orgin\modules\access\live555.cpp 1236 1 live555
错误 55 error C2447: “{”: 缺少函数标题(是否是老式的形式表?) d:\dfb_work\vlc_0525\播放器\vlc-2.2.6.32-2013-master2\vlc-2.2.6.32-2013-master_orgin\modules\access\live555.cpp 1236 1 live555
将此注释放在下面,报错消失:
p_sys->rtsp->sendSetupCommand( *sub, default_live555_callback, False,
toBool( b_rtsp_tcp ),
toBool( p_sys->b_force_mcast && !b_rtsp_tcp ) );
if( !wait_Live555_response( p_demux ) )
{/***判断Setup命令是否发送成功*/
同样改成下面这样也不报错:
p_sys->rtsp->sendSetupCommand( *sub, default_live555_callback, False,
toBool( b_rtsp_tcp ),
toBool( p_sys->b_force_mcast && !b_rtsp_tcp ) );
if( !wait_Live555_response( p_demux ) )//这儿加下面一行注释会报错
{/***判断Setup命令是否发送成功*/
未能找到原因,此前曾遇到过VLC怎么也不能编译成功的问题,与此类似。