我正在尝试使用带有Eclipse CDT IDE的C ++在Ubuntu 17.04 64位上开始学习开发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
答案 0 :(得分:3)
在编译器标志上使用pkg-config,您需要包含gtk + -2.0库及其依赖项。将此添加到编译器命令可以解决问题。
在Eclipse CDT中,可以在Project Properties - &gt;中找到它。 C / C ++ Build - &gt;设置 - &gt; GCC C ++编译器,然后编辑“命令”。
select c.id, cm.member_id,
case when existes cm.member_id = 5 as new_table
from old_table c left join
new_table cm
on c.id = cm.id
where c.type = 0
order by c.id desc
limit 200