了解vala编译警告

问题描述 投票:6回答:1

下面的编译警告对我来说不太清楚,弃用处理,但该方法在valadoc中签名:

http://valadoc.org/#!api=gstreamer-1.0/Gst

未显示其他方法签名。

其他警告更加晦涩。

max @ max-ubuntu:〜/ mdev / cr valac --pkg gstreamer-0.10 gstpipe.vala/home/max/dev/main-sandbox/cr/gstpipe.vala.c:在“ application_message”函数中:/home/max/dev/main-sandbox/cr/gstpipe.vala.c:64:2:警告:传递“ _gst_structure_copy0”的参数1会从指针目标类型中丢弃“ const”限定符(默认启用)/home/max/dev/main-sandbox/cr/gstpipe.vala.c:26:17:注意:预期为“ gpointer”,但参数类型为“ const struct GstStructure *”/home/max/dev/main-sandbox/cr/gstpipe.vala.c:82:9:警告:分配会从指针目标类型中丢弃“ const”限定符[默认启用]/home/max/dev/main-sandbox/cr/gstpipe.vala.c:在“ main”函数中:/home/max/dev/main-sandbox/cr/gstpipe.vala.c:173:2:警告:不建议使用“ g_type_init”(在/usr/include/glib-2.0/gobject/gtype.h:669声明) [-Wdeprecated-clarations]
使用Gst;void application_message(Gst.Bus总线,Gst.Message消息){var s = msg.get_structure();如果(s == null)返回;字符串msgtype = s.get_name();if(msgtype!=“级别”)返回;GLib.Value rms = s.get_value(“ rms”);//GLib.Value st = s.get_value(“ stream-time”);GLib.DateTime现在=新的GLib.DateTime.now_local();var sec = now.to_unix();var msec =(sec * 1000)+ now.get_microsecond();var z = rms.strdup_contents();// z = z.replace(“ {”,“ [”).replace(“}”,“]”);stdout.printf(“%ld,%s \ n”,(长)毫秒,z);}void main(string [] args){Gst.init(ref args);尝试{var pipe = Gst.parse_launch(“” pulsesrc设备= \“ alsa_input.usb-046d_08c9_674634A4-02-U0x46d0x8c9.analog-mono \”!“ +“级别名称=波级间隔= 10000000!” +“ wavenc!filesink location = audioz.wav”);var bus = pipeline.get_bus();bus.add_signal_watch();bus.message.connect(application_message);//将管道状态设置为PLAYINGpipe.set_state(State.PLAYING);//创建并启动GLib主循环新的MainLoop().run();}catch(错误e){print(“%s \ n”,e.message);}}
warnings vala
1个回答
13
投票

使用Vala时,通常可以忽略C编译器的警告。 Vala比C编译器提供更好的信息,因此,当C编译器无法得知某些信息时,它就知道某些事情是有效的。不幸的是,由于在某些情况下我们无法生成有效的演员表(而且,没有办法知道这些情况是什么),所以我们不能随处添加演员表。

关于g_type_init被弃用的最终警告是因为从glib 2.36开始不再需要g_type_init。您可以通过将--target-glib = 2.36(或任何更高版本的glib)传递给valac来消除该警告,但要警告所生成的代码可能不再适用于旧版本的glib。

TBH,我经常只是将-X -w传递给valac,以使C编译器保持安静。有时我会错过一个有用的警告,但是它会删除lot没用的警告。

© www.soinside.com 2019 - 2024. All rights reserved.