|
发表于 2002-12-7 23:59:27
|
显示全部楼层
to 公社软件部部长:
你在编译RedBlueVcd时发生如下错误:
g++ -DHAVE_CONFIG_H -I. -I. -I.. -I/usr/include/kde -I/usr/lib/qt-3.0.5/include -I/usr/X11R6/include -O2 -fno-exceptions -fno-check-new -c cdplay.cpp
cdplay.cpp:193:63: warning: multi-line string literals are deprecated
cdplay.cpp:230: default argument given for parameter 1 of `void
CDplay::cdplay(int = 0)'
cdplay.h:79: after previous specification in `void CDplay::cdplay(int = 0)'
cdplay.cpp:255:53: warning: multi-line string literals are deprecated
make[2]: *** [cdplay.o] Error 1
解决方法是:
首先执行“ln -s /usr/lib/qt3-gcc3.2 /usr/lib/qt3-gcc2.96"并解决SDL和smpeg库包含问题(头文件链接到/usr/include下)。
用vi或kate编辑cdplay.cpp(注意不能用gedit编辑,否则中文不能正常显示),转到“cdplay.cpp:193:63: warning: multi-line string literals are deprecated”所示的193行,源文件这一行分了几行,把它合并到一行就行,象这样:
“int num=QMessageBox::warning( this, tr("请选择:"), tr("在你的系统上探测到多个光驱,\n请选择你要使用的光驱."),tr(SDL_CDName(0)), tr(SDL_CDName(1)),"", 1, -1 );”。
接下去再转到“cdplay.cpp:230: default argument given for parameter 1 of `void CDplay::cdplay(int = 0)'”所示的230行,把函数参数表中参数默认值0去掉,即改为“void CDplay::cdplay( int index){”,因为参数默认值已在“cdplay.h”中说明,iso c++不允许重复说明,这可能是作者的疏忽。
以后如有错照上述方法修改即可。
还有个错好象是SDL驱动版本问题,提示"RB_SDL_Init3d"未定义,打开zhcvd.cpp,找到“void Zhvcd::zhSet3d_slot()”函数,把它改为空函数即:“void Zhvcd::zhSet3d_slot(){ }”,这样至多不能看立体电影。
rh8.0+qt3编译通过。 |
|