C++ 为什么是C++;代码不编译?

C++ 为什么是C++;代码不编译?,c++,gtk,header-files,C++,Gtk,Header Files,我正在使用GTK+,由于某些原因,我的屏幕捕获函数无法编译,出现以下错误: main.cpp:17:97:错误:“gdk_pixbuf_get_from_drawable”未在此范围内声明 gdk_pixbuf_get_from_drawable在哪个.H文件中声明?代码如下: #include <libCrossLibs.h> #include <gdk-pixbuf/gdk-pixbuf.h> #include <gdk/gdk.h> #include &

我正在使用GTK+,由于某些原因,我的屏幕捕获函数无法编译,出现以下错误:

main.cpp:17:97:错误:“gdk_pixbuf_get_from_drawable”未在此范围内声明

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

#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();
}
#包括
#包括
#包括
#包括
ILibraryInstance*仪器;
GdkPixbuf*获取屏幕截图(){
GdkPixbuf*屏幕截图;
GdkWindow*根窗口;
基特·克奥尔格,克奥尔格;
rootWindow=gdk_get_default_root_window();
轧棉宽度、高度;
宽度=gdk_窗口_获取_宽度(根窗口);
高度=gdk_窗口_获取_高度(rootWindow);
gdk_窗口_获取_原点(rootWindow,&x_原点,&y_原点);
屏幕截图=gdk_pixbuf_get_from_drawable(NULL,rootWindow,
空、x_原点、y_原点、0、0、宽度、高度);
返回截图;
}
内部主(空){
inst=初始化库();
}

编译器认为gdk\u pixbuf\u get\u from\u drawable函数不存在。要么拼写错误,要么缺少一个
#include
,要么您的平台不提供该功能。

显然,gdk_pixbuf_get_from_drawable已替换为gdk_pixbuf_get_from_window。来源:

我知道我一定缺少一个include,问题是它在哪个include中?文档说它应该在gdk.h中,但显然不在那里。尝试手动搜索gdk头文件根据
gtk
文档,函数
gdk\u pixbuf\u get\u from\u drawable
gdk/gdk.h
()中定义,它已经包含在项目中。这是一个好问题,它被无情地关闭了,但我也有同样的问题,下面接受的解决方案也是我的解决方案。谢谢你,它帮了我很多。