Ваш первый вопрос по неопределенным ссылкам:
Насколько я понимаю, libui не предоставляет файл libui.pc для pkg-config. Поэтому вы должны указать компилятору vala связать библиотеку libui.so следующим образом:
valac --vapidir . --pkg libui -X -lui main.vala
Теперь по второму вопросу, касающемуся memset:
Вам не нужно обнулять память, в любом случае valac делает это автоматически. Вы можете увидеть это в сгенерированном коде, который вы можете получить:
valac --vapidir . --pkg libui -C main.vala
Там есть memset:
gint _vala_main (gchar** args, int args_length1) {
gint result = 0;
uiInitOptions o = {0};
uiInitOptions _tmp0_;
memset (&o, 0, sizeof (uiInitOptions));
_tmp0_ = o;
uiInit (&_tmp0_);
result = 0;
return result;
}
PS: Возможно, вы захотите избавиться от префиксов ui * в вашем vapi-файле и использовать вместо этого пространство имен.