如何在C文件中包含gtk / gtk.h

时间:2015-05-27 21:03:31

标签: c gtk

我对C中的开发非常新,并且想要使用GTK创建GUI。我已经下载并安装了gtk 3.6.4捆绑包。我试图编译一些像这样的示例代码:

#include <gtk/gtk.h>

int main(int argc, char *argv[])
{
    GtkWidget *window;
    gtk_init(&argc, &argv);
    window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
    gtk_widget_show(window);
    gtk_main();
    return 0;
}

我真的无法理解如何包含头文件。我见过几个讨论使用pkg-config命令的线程,如:

pkg-config --cflags --libs gtk+-3.0

此代码应插入何处?它在命令窗口运行并生成一些输出,但这并没有解决我在代码中的MS visual studio中出现的错误。我提前为重复一个问题道歉,但我仍然无法理解应该运行这个pkg-config代码的位置,而其他回复对我来说并不清楚。

1 个答案:

答案 0 :(得分:2)

pkg-config --cflags gtk+-3.0 行是一个shell命令,它在标准输出上生成您需要传递以使用所需函数的编译器标志。例如,

-pthread -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/x86_64-linux-gnu/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/mirclient -I/usr/include/mircommon -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng12 -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include 

为我生产

`...`

您要做的是使用shell的一个功能,在该功能中,命令的输出将被放入另一个命令的命令行中。在bash中,这是通过gcc -o program program.c `pkg-config --cflags --libs gtk+-3.0`

完成的
$(...)

对于bash,另一种语法是gcc -o program program.c $(pkg-config --cflags --libs gtk+-3.0)

$(...)

对于GNU make makefile,如果要使用shell,则需要使用gcc -o program program.c $(shell pkg-config --cflags --libs gtk+-3.0) 函数:

--cflags

--libs生成C编译器标志,--cflags生成链接器标志。如果您正在使用makefile构建,那么您只想向生成.o文件的配方提供--libs,并且仅向生成的配方提供if最终的可执行文件要使用单个命令将单个C文件直接编译为可执行文件,请同时提供。