Я несколько дней пытался заставить простой тестовый пример (matrix.wlua из примеров документации IUP) работать правильно.
IUPLua отсутствует в LuaRocks, поэтому мне пришлось установить LuaDist и изменить мой путь; когда я попытался скомпилировать iup (включая флаг -DGTK2_INCLUDE_DIRS=/usr/include/gdk-pixbuf-2.0;/usr/include/glib-2.0;/usr/lib/glib-2.0/include;/usr/include/gtk-2.0;/usr/lib/gtk-2.0/include;/usr/include/gtk-2.0;/usr/include/cairo;/usr/include/pango-1.0;/usr/include/atk-1.0
, чтобы заголовки gdk-pixbuf были правильно включены), следующее сообщение об ошибке показывалось почти для каждого скомпилированного файла, связанного с GTK:
[ 35%] Building C object CMakeFiles/iup.dir/src/gtk/iupgtk_common.c.o
In file included from /usr/include/gtk-2.0/gdk/gdkcairo.h:28:0,
from /usr/include/gtk-2.0/gdk/gdk.h:33,
from /usr/include/gtk-2.0/gtk/gtk.h:32,
from /home/archie/luadist/tmp/iup-3.5/LuaDist-iup-203b27f/src/gtk/iupgtk_common.c:12:
/usr/include/gtk-2.0/gdk/gdkpixbuf.h:43:43: error: unknown type name ‘GdkPixbuf’
Некоторые копания в моей системе включают файлы с grin
, которые определили, что объявление, указанное в документации GdkPixBuf, typedef struct _GdkPixbuf GdkPixbuf
, на самом деле не существует ни в одном файле, который, по словам моего менеджера пакетов, был установлен gdk-pixbuf.
Моя следующая попытка была загрузить дистрибутив IUP и вручную отключить опции в файле CMakeLists.txt
для использования GTK2. Затем он компилировался, ссылаясь на OpenMotif, и предоставляемая C-программа «iuptest» работала отлично. CDLua и IMLua также отлично скомпилированы и установлены в / usr / local / lib / lua. Однако компиляция IUPLua остановилась со следующим сообщением об ошибке:
[ 98%] Building C object CMakeFiles/iupluaweb.dir/srclua5/il_webbrowser.c.o
make[2]: *** No rule to make target `/usr/lib/libiupweb.so', needed by `iupluaweb.so'. Stop.
Я недостаточно знаком с CMake или C, чтобы знать, как это исправить, и я не могу поверить, что у такой библиотеки были бы такие недостатки, если бы не было релевантных результатов поиска для любого из этих сообщений об ошибках ( т). Я думаю, что эти несчастья могут быть результатом какой-то ошибки с моей стороны. Есть идеи относительно того, в чем может быть ошибка и / или как ее исправить?