有人能用这段代码发现问题吗? 它是用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;
}
答案 0 :(得分:1)
D-Bus代理的方法需要抛出异常:
public abstract void get_address (out int32 timestamp, out HashTable<string,string> address, out Accuracy acc) throws GLib.IOError;