есть хороший пример WAF Вала здесь:Пример WAF проект с Валом
https://code.launchpad.net/~asabil/vala/vala-project-template.waf
и это показывает, библиотеку и применение в Вал. К сожалению, программа в этом примере фактически не использует библиотеку (которая определяет метод «привет»). Когда я пытаюсь вызвать его из программы, я получаю ошибки компиляции.
Я не могу изменить wscript для правильной загрузки библиотеки. Что это за трюк? Благодарю.
То, что я добавил это строка в программе:
My.Lib.hello();
Но это не компилируется:
Waf: Entering directory `/home/lzap/work/shellmail/TEST/vala-template/_build_'
[1/6] valac: src/hello-gtk.vala -> _build_/default/src/hello-gtk.c
../src/hello-gtk.vala:16.9-16.10: error: The name `My' does not exist in the context of `Sample.create_widgets._lambda0_'
Waf: Leaving directory `/home/lzap/work/shellmail/TEST/vala-template/_build_'
Build failed: -> task failed (err #1):
{task: valac_task hello-gtk.vala -> hello-gtk.c}
Я думаю, мне нужно изменить программу Wscript:
#!/usr/bin/env python
def build(bld):
prog = bld(features='cc cprogram')
# symbolic name used to reference this object
prog.name = 'hello-gtk.program'
# name of the resulting program
prog.target = 'hello-gtk'
prog.source = 'hello-gtk.vala'
# libraries to link against
prog.uselib = 'GTK+'
# Vala packages to use
prog.packages = 'gtk+-2.0'
# Extra vapi dirs
#prog.vapi_dirs = '../my_lib'
# Enable threading
#prog.threading = True
Ну, спасибо, что попробовали. Но метод определяется как статический. Проблема другая, Мой не может быть найден. – lzap
Мы говорим о том же файле? http://bazaar.launchpad.net/~asabil/vala/vala-project-template.waf/view/head:/my_lib/my-lib.vala Метод определен внутри класса без 'static' ключевое слово. – eagleoneraptor
А я уже удалил это из своего проекта. В любом случае, я вернулся к Autotools. Благодарю. – lzap