如何在 gtk 3.0 中构建示例项目

How to build a sample project in gtk 3.0

我刚开始在 Ubuntu 中使用 eclipse cdt 和 gtk 学习 C++ 编程。

我能够安装和配置的软件包是:

  1. 安装gtk3.0
  2. 从市场安装 pkg-config
  3. 在 Cross G++ 编译器中添加了 ${PKCFLAGS} 现在:${COMMAND} ${FLAGS} ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${OUTPUT} ${INPUTS}${PKCFLAGS}
  4. 在交叉 G++ 链接器中添加了 ${PKCFLAGS} 现在:${COMMAND} ${FLAGS} ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${OUTPUT} ${INPUTS}${PKCFLAGS}

我尝试运行一个示例程序:

#include <stdio.h>
#include <stdlib.h>
#include <gtk/gtk.h>

int main (int   argc, char *argv[]) {
  GtkWidget *window;

  gtk_init (&amp;amp;argc, &amp;amp;argv);

  window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
  gtk_window_set_title (GTK_WINDOW (window), &amp;quot;Window :-)&amp;quot;);

  g_signal_connect (window, &amp;quot;destroy&amp;quot;, G_CALLBACK (gtk_main_quit), NULL);

  gtk_widget_show (window);

  gtk_main ();

  return 0;
}

但我仍然收到错误消息"Unresolved inclusion: "

有两个问题,

  1. 我还需要在 C/C++ Build => settings
  2. 中添加 gtk+2.0
  3. 我没注意到,但我附加的代码有几个问题 加上一些奇怪的符号,我把它改成这样:

     #include <stdio.h>
     #include <stdlib.h>
     #include <gtk/gtk.h>
    

    int main (int argc, char *argv[]) { GtkWidget *window;

      gtk_init (&argc, &argv);
    
      window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
      gtk_window_set_title (GTK_WINDOW (window), "Hello world");
    
      g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
    
      gtk_widget_show (window);
    
      gtk_main ();
    
      return 0;
    

    }

运行 在终端中 pkg-config --cflags gtk+-3.0 并将输出放在 Eclipse 设置中某处的 "compiler flags" 字段中。 运行 pkg-config --libs gtk+-3.0 并将此命令的输出放在 "linker flags" 字段中。除非你真的在交叉编译,否则不要使用交叉编译器设置。只要您的代码正确,这应该可以编译。