Глобальные переменные в общей библиотеке?

Я пытаюсь добавить глобальные переменные в общую библиотеку. Рассмотрим этот пример, в библиотеке libutils, globals.vala содержит

namespace Libutils {
public static GLib.Object yorgi_obj;
public static int yorgi_int;
}

Я вижу, что внешние файлы правильно генерируются в файлах.c &.h

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 ответов

Другие вопросы по тегам