2016-05-16 51 views
0

我刚刚开始学习使用eclipse cdt和gtk在Ubuntu中进行C++编程。如何在gtk 3.0中构建示例项目

我能够安装和配置包:

  1. 安装gtk3.0
  2. 从市场上
  3. 添加$ {} PKCFLAGS跨G ++编译器 安装pkg配置现在:$ {COMMAND} $ {FLAGS} $ {OUTPUT_FLAG} $ {OUTPUT_PREFIX} $ {OUTPUT} $ {INPUTS} $ {PKCFLAGS}
  4. 在Cross G ++ Linker中添加$ {PKCFLAGS} Now:$ {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; 
} 

但我仍然得到一个错误 “未解决的包容:”

回答

0

有两个问题,

  1. 我需要在C/C++ Build =>设置中添加gtk + 2.0
  2. 我没有注意到,但有几个是与我连接它的 一些奇怪的符号的代码起诉,我改成了这一点:

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

    INT主(INT的argc,字符* argv的[]){ 的GtkWidget *窗口;

    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

+0

我想他想在问题中输入Gtk + -3.0。 –

1

运行,并把在 “编译器标志” 字段的输出介于Eclipse的设置。 运行 pkg-config --libs gtk+-3.0 并将此命令的输出置于“链接器标志”字段中。除非你真的交叉编译,否则不要使用交叉编译器设置。只要你的代码是正确的,这应该编译。