1. 程式人生 > >VLC 中LIVE555模組編譯遇到的奇怪報錯

VLC 中LIVE555模組編譯遇到的奇怪報錯

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怎麼也不能編譯成功的問題,與此類似。