共享库中的全局变量?

时间:2018-07-09 17:48:11

标签: vala

我正在尝试将全局变量添加到共享库。考虑这个示例,在库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属性或将某些内容传递给链接器?

0 个答案:

没有答案