linux下GTK程序的编译,请帮忙看下。

lieye_leaves 2011-04-08 09:42:54
刚刚接触GTK,请帮忙看下了,编译不通过。

安装gtk如下:
apt-get install gnome-devel

linux@lieyeus:~/gtk_prj$ pkg-config --libs gtk+-2.0
-lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm -lpangocairo-1.0 -lfontconfig -lXext -lXrender -lXinerama -lXi -lXrandr -lXcursor -lXfixes -lpango-1.0 -lcairo -lX11 -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0

源代码如下:
#include <gtk/gtk.h>

int main(int argc, char* argv[] )
{
GtkWidget* toplevelWindow;
gtk_init(&argc,&argv);
toplevelWindow = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_show(toplevelWindow);
gtk_main();

}

linux@lieyeus:~/gtk_prj$ gcc 'pkg-config --cflags --libs gtk+-2.0' newgtk.c -o newgtk

gcc: pkg-config --cflags --libs gtk+-2.0: No such file or directory
newgtk.c:1:21: error: gtk/gtk.h: No such file or directory
newgtk.c: In function ‘main’:
newgtk.c:5: error: ‘GtkWidget’ undeclared (first use in this function)
newgtk.c:5: error: (Each undeclared identifier is reported only once
newgtk.c:5: error: for each function it appears in.)
newgtk.c:5: error: ‘toplevelWindow’ undeclared (first use in this function)
newgtk.c:7: error: ‘GTK_WINDOW_TOPLEVEL’ undeclared (first use in this function)


...全文
376 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
lieye_leaves 2011-04-09
  • 打赏
  • 举报
回复
是的,确实是这样,谢谢了。
steptodream 2011-04-09
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 lieye_leaves 的回复:]

我先用pkg-config --cflags --libs gtk+-2.0得到路径,再把路径复制到编译的命令中编译就通过了,但是为什么直接在命令中用pkg-config就不行呢?就比如说出现刚开始的错误,编译不通过。

root@lieyeus:/home/linux/gtk_prj# pkg-config --cflags --libs gtk+-2.0
-I/usr/include/……
[/Quote]
我发现了 你用pkg-config --cflags --libs gtk+-2.0得到路径的时候 符号写法错误

'pkg-config --cflags --libs gtk+-2.0'
这里要把pkg-config --cflags --libs gtk+-2.0当命令执行 就不能用单引号 要用反单引号 因此改成下面的 你再试试
`pkg-config --cflags --libs gtk+-2.0`
lieye_leaves 2011-04-09
  • 打赏
  • 举报
回复
我先用pkg-config --cflags --libs gtk+-2.0得到路径,再把路径复制到编译的命令中编译就通过了,但是为什么直接在命令中用pkg-config就不行呢?就比如说出现刚开始的错误,编译不通过。

root@lieyeus:/home/linux/gtk_prj# pkg-config --cflags --libs gtk+-2.0
-I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/freetype2 -I/usr/include/libpng12 -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm -lpangocairo-1.0 -lfontconfig -lXext -lXrender -lXinerama -lXi -lXrandr -lXcursor -lXfixes -lpango-1.0 -lcairo -lX11 -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0


root@lieyeus:/home/linux/gtk_prj#gcc newgtk.c -o newgtk -I/usr/include/gtk-2.0
-I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/freetype2 -I/usr/include/libpng12 -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm -lpangocairo-1.0 -lfontconfig -lXext -lXrender -lXinerama -lXi -lXrandr -lXcursor -lXfixes -lpango-1.0 -lcairo -lX11 -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0
steptodream 2011-04-08
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 lieye_leaves 的回复:]

/usr/include/gtk-2.0/gtk 该路径下是有的。
[/Quote]
把-I /usr/include/gtk-2.0/gtk 改成 -I /usr/include/gtk-2.0
lieye_leaves 2011-04-08
  • 打赏
  • 举报
回复
/usr/include/gtk-2.0/gtk 该路径下是有的。
steptodream 2011-04-08
  • 打赏
  • 举报
回复
gcc: pkg-config --cflags --libs gtk+-2.0: No such file or directory
newgtk.c:1:21: error: gtk/gtk.h: No such file or directory
------------
都提示了没有gtk/gtk.h
/usr/include/gtk-2.0/gtk这路径下有吗
lieye_leaves 2011-04-08
  • 打赏
  • 举报
回复
linux@lieyeus:~/gtk_prj$ gcc 'pkg-config --cflags --libs gtk+-2.0' -I /usr/include/gtk-2.0/gtk newgtk.c -o newgtk
gcc: pkg-config --cflags --libs gtk+-2.0: No such file or directory
newgtk.c:1:21: error: gtk/gtk.h: No such file or directory
newgtk.c: In function ‘main’:
newgtk.c:5: error: ‘GtkWidget’ undeclared (first use in this function)
newgtk.c:5: error: (Each undeclared identifier is reported only once
newgtk.c:5: error: for each function it appears in.)
newgtk.c:5: error: ‘toplevelWindow’ undeclared (first use in this function)
newgtk.c:7: error: ‘GTK_WINDOW_TOPLEVEL’ undeclared (first use in this function)
增加了-I的选项后,问题依旧。
steptodream 2011-04-08
  • 打赏
  • 举报
回复
没有gtk/gtk.h 说明缺少包 执行下面的命令安装
apt-get install libgtk2.0-dev
jufeng2309 2011-04-08
  • 打赏
  • 举报
回复
一看提示,主要问题是gtk.h头文件未找到而导致后续的错误。
请确认gtk.h头文件的位置?看是否在系统的include目录下,
如果不在的话,-I进行指向。

23,121

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧