valac在DBus程序上生成错误的C代码

时间:2013-05-17 00:14:30

标签: dbus vala

有人能用这段代码发现问题吗? 它是用valac编译的,但是当gcc尝试编译valac生成的C代码时出现错误,这里是gcc输出:

(...) Weather.c: En la función ‘__lambda3_’:
(...) Weather.c:696:9: aviso: la asignación descarta el calificador ‘const’ del tipo del destino del puntero [activado por defecto]
(...) Weather.c: En la función ‘address_proxy_get_address’:
(...) Weather.c:1535:228: error: ‘error’ no se declaró aquí (primer uso en esta función)
(...) Weather.c:1535:228: nota: cada identificador sin declarar se reporta sólo una vez para cada función en el que aparece

这是DBus接口声明:

[DBus (name="org.freedesktop.Geoclue.Address")]
interface Address : Object {
    public abstract void get_address (out int32 timestamp, out HashTable<string,string> address, out Accuracy acc);
    public signal void address_changed (int32 timestamp, HashTable<string,string> address, Accuracy acc);
}

struct Accuracy {
    int32 int1;
    double double1;
    double double2;
}

1 个答案:

答案 0 :(得分:1)

D-Bus代理的方法需要抛出异常:

public abstract void get_address (out int32 timestamp, out HashTable<string,string> address, out Accuracy acc) throws GLib.IOError;