4

我正在尝试开始学习在 Ubuntu 17.04 64 位上使用 C++ 和 Eclipse CDT IDE 开发 GTK+ 应用程序,并且在尝试包含 GTK 库时遇到了问题。我想知道为什么包含不起作用。我安装了 gtk 2.0 (DEV),最近又安装了 gtk 3.0,看看这是否无济于事。以下是我的代码:

#include <iostream>
#include <gtk/gtk.h>

int main()
{
    return 0;
}

我正在使用以下编译器标志:

-I/usr/include/gtk-3.0 -I/usr/include/glib-2.0 -O0 -g3 -Wall -c -
fmessage-length=0

我的编译器出现以下错误:

g++ -I/usr/include/gtk-3.0 -I/usr/include/glib-2.0 -O0 -g3 -Wall -c -
fmessage-length=0 -MMD -MP -MF"main.d" -MT"main.o" -o "main.o" 
"../main.cpp"
In file included from /usr/include/glib-2.0/glib/galloca.h:32:0,
             from /usr/include/glib-2.0/glib.h:30,
             from /usr/include/gtk-3.0/gdk/gdkconfig.h:13,
             from /usr/include/gtk-3.0/gdk/gdk.h:30,
             from /usr/include/gtk-3.0/gtk/gtk.h:30,
             from ../main.cpp:2:
/usr/include/glib-2.0/glib/gtypes.h:32:24: fatal error: glibconfig.h: 
No such file or directory
 #include <glibconfig.h>
                    ^
compilation terminated.
make: *** [main.o] Error 1
subdir.mk:18: recipe for target 'main.o' failed
4

1 回答 1

3

在编译器标志上使用 pkg-config,您需要包含 gtk+-2.0 库及其依赖项。将此添加到您的编译器命令可以解决问题。

在 Eclipse CDT 中,可以在 Project Properties -> C/C++ Build -> Settings -> GCC C++ Compiler 中找到它,然后编辑“Command”。

g++ `pkg-config --cflags --libs gtk+-2.0`
于 2017-08-28T18:22:18.813 回答