我正在尝试将全局变量添加到共享库。考虑这个示例,在库libutils中,globals.vala包含
namespace Libutils {
public static GLib.Object yorgi_obj;
public static int yorgi_int;
}
我看到在.c和.h文件中正确生成了externs
libutils:globals.c
extern GObject* libutils_yorgi_obj;
GObject* libutils_yorgi_obj = NULL;
extern gint libutils_yorgi_int;
gint libutils_yorgi_int = 0;
libutils:globals.h
extern GObject* libutils_yorgi_obj;
extern gint libutils_yorgi_int;
我的测试程序tester.vala
int main(string[] args) {
Libutils.yorgi_int = 1;
在tester.vala编译中一切正常。但是链接到Libutils.so我得到
...tester.vala:614: undefined reference to `libutils_yorgi_int'
我是否必须指定一些特殊的vala属性或将某些内容传递给链接器?