【问题标题】:Compiling simple gtk+ application编译简单的 gtk+ 应用程序
【发布时间】:2010-05-23 05:08:03
【问题描述】:

我尝试在 Anjuta IDE 中编译简单的 gtk+ 应用程序。应用程序是一个简单的窗口:

# include <gtk/gtk.h>

int main( int argc, char *argv[])
{
    GtkWidget *label;   
    GtkWidget *window;  
    gtk_init(&argc, &argv);
    window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
    gtk_window_set_title(GTK_WINDOW(window), "Здравствуй, мир!");
    label = gtk_label_new("Здравствуй, мир!");
    gtk_container_add(GTK_CONTAINER(window), label);
    gtk_widget_show_all(window);
    g_signal_connect(G_OBJECT(window), "destroy", G_CALLBACK(gtk_main_quit), NULL);
    gtk_main();
    return 0;
}

在 make 文件中我有:

GTK_CFLAGS = -D_REENTRANT -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/directfb -I/usr/include/libpng12 -I/usr/include/pixman-1  

GTK_LIBS = -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm -lpangocairo-1.0 -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0  

但是当我尝试编译项目时看到错误:gtk/gtk.h - 没有这样的文件或目录

谢谢。

【问题讨论】:

  • 在 makefile 中你确实有更多的只是,对吧?
  • 那么,您的系统上是否有 gtk/gtk.h?如果是这样,你没有正确指向它。如果没有,你需要安装它。
  • 我不太明白。是的,当然在项目中不仅仅是makefile。 makefile 很大,它生成了 gnu/autotools
  • 错误来自编译器还是make?我怀疑后者,并且您有一个依赖于 gtk/gtk.h 的目标,并且 make 不知道如何获取或制作它。准确的错误文本会有所帮助。
  • 为什么不使用 Vala [live.gnome.org/Vala]?它比 C++ 简单得多,您可以在 Anjunta 中使用它。

标签: gtk


【解决方案1】:

在没有make文件的终端下的linux上

     gcc -o project project.cpp -Wall `pkg-config --libs --cflags gtk+-2.0`

用你的文件名替换项目

并将 gtk+-2.0 替换为您使用其简单和

的任何版本

这么小的程序不需要make文件 :P 祝你好运

【讨论】:

    【解决方案2】:

    在 Anjuta 中,您可以从“项目”菜单中选择“属性”,然后转到“包”选项卡。将有一个模块和包的列表。将包 gtk+-2.0 添加到列表中的任何模块。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-05-16
      • 2017-05-19
      • 1970-01-01
      • 1970-01-01
      • 2023-03-03
      • 2012-12-10
      • 2014-07-31
      相关资源
      最近更新 更多