2012-08-22 16 views
0

我需要旋轉一個Pixbuf。該VALA代碼包含如何修復「錯誤:gdk-pixbuf/gdk-pixdata.h:沒有這樣的文件或目錄?」

using Gst, GLib, Posix, Sqlite, Gdk; 
public class RotateSaveImage 
{ 
    public void RotateSaveImage(string input, string output) 
    { 
     var img = new Pixbuf.from_file(input); 
     var rotate_image = img.rotate_simple(PixbufRotation.CLOCKWISE); 
     rotate_image.save(output, "jpeg"); 
    } 
} 

生成文件包含

test_VALAFLAGS = [email protected]@ --pkg gstreamer-0.10 --pkg glib-2.0 --pkg gio-2.0 --pkg posix --thread --pkg gstreamer-app-0.10 --pkg sqlite3 --pkg gtk+-3.0

不應該--pkg GTK + -3.0添加GDK-pixbuf的/ GDK-pixdata.h?

回答

1

Autotools將只使用valac將Vala代碼轉換爲C,然後使用它支持構建C以實際編譯爲機器代碼。這意味着您需要將相關信息添加到* _CFLAGS和* _LDFLAGS。

PKG_CHECK_MODULES(GIO_PIXBUF, gio-2.0) 
AC_SUBST(GIO_CFLAGS) 
AC_SUBST(GIO_LIBS) 
PKG_CHECK_MODULES(GSTREAMER, gstreamer-0.10) 
AC_SUBST(GSTREAMER_CFLAGS) 
AC_SUBST(GSTREAMER_LIBS) 
PKG_CHECK_MODULES(GSTREAMER_APP, gstreamer-app-0.10) 
AC_SUBST(GSTREAMER_APP_CFLAGS) 
AC_SUBST(GSTREAMER_APP_LIBS) 
PKG_CHECK_MODULES(SQLITE, sqlite3) 
AC_SUBST(SQLITE_CFLAGS) 
AC_SUBST(SQLITE_LIBS) 
PKG_CHECK_MODULES(GTK, gtk+-3.0) 
AC_SUBST(GTK_CFLAGS) 
AC_SUBST(GTK_LIBS) 

而且這樣的事情在Makefile.am:

test_VALAFLAGS = [email protected]@ --pkg gstreamer-0.10 --pkg glib-2.0 --pkg gio-2.0 --pkg posix --thread --pkg gstreamer-app-0.10 --pkg sqlite3 --pkg gtk+-3.0 

test_CFLAGS = $(GIO_CFLAGS) $(GSTREAMER_CFLAGS) $(GSTREAMER_APP_CFLAGS) $(SQLITE_CFLAGS) $(GTK_CFLAGS) 

test_LDFLAGS = $(GIO_LIBS) $(GSTREAMER_LIBS) $(GSTREAMER_APP_LIBS) $(SQLITE_LIBS) $(GTK_LIBS) 
一般來說,這是通過把這樣的事情在你的configure.ac完成
相關問題