2013-02-15 111 views
1

我使用GTK +出于某种原因,我的屏幕捕捉功能失败与错误编译:为什么这个C++代码不能编译?

main.cpp:17:97: error: ‘gdk_pixbuf_get_from_drawable’ was not declared in this scope

哪个.H文件gdk_pixbuf_get_from_drawable中声明?以下代码如下:

#include <libCrossLibs.h> 
#include <gdk-pixbuf/gdk-pixbuf.h> 
#include <gdk/gdk.h> 
#include <gtk/gtk.h> 

ILibraryInstance* inst; 

GdkPixbuf* get_screenshot() { 
    GdkPixbuf* screenshot; 
    GdkWindow* rootWindow; 
    gint x_orig, y_orig; 
    rootWindow = gdk_get_default_root_window(); 
    gint width, height; 
    width = gdk_window_get_width(rootWindow); 
    height = gdk_window_get_height(rootWindow); 
    gdk_window_get_origin(rootWindow,&x_orig,&y_orig); 

    screenshot = gdk_pixbuf_get_from_drawable(NULL, rootWindow, 
     NULL, x_orig, y_orig, 0, 0, width, height); 

    return screenshot; 
} 

int main(void) { 
    inst = InitializeLibraries(); 
} 
+0

根据'gtk'文档中,功能'gdk_pixbuf_get_from_drawable'在'GDK/gdk.h'定义(http://developer.gnome.org/gdk/stable/gdk-Pixbufs.html) – 2013-02-15 22:30:41

+0

已经包含在项目中 – IDWMaster 2013-02-15 22:31:15

+0

这是一个很好的问题,它不幸被关闭了,但我遇到了同样的问题,下面的解决方案也是我的解决方案。 – Noitidart 2015-05-17 07:30:32

回答

1

显然gdk_pixbuf_get_from_drawable已被替换为gdk_pixbuf_get_from_window。来源:GNOME documentation

+0

感谢这一点,它帮助了我很多。 – Noitidart 2015-05-17 07:30:06

1

编译器不认为函数gdk_pixbuf_get_from_drawable存在。或者你拼错了,你错过了#include,或者你的平台没有提供这个功能。

+1

我知道我必须缺少一个包含,问题是包含它在哪里?文档说它应该在gdk.h中,但显然不存在。 – IDWMaster 2013-02-15 22:22:56

+0

尝试通过手动搜索gdk头文件 – jalf 2013-02-15 22:26:25