C开发和GTK +入门

fan*_*ngo 5 gtk gcc

我是一个专门的Python开发人员,但我现在正在进行C编程,我开始时遇到了很多麻烦.我似乎无法掌握编译和包括库.此时,我只是确定了我需要的库,并尝试使用基本的"hello,world"应用程序编译它们,以确保我的环境设置可以进行实际的编程.

这是一个DBus后端应用程序,它将使用GIO连接到DBus.

#include <stdlib.h>
#include <gio/gio.h>

int 
main (int argc, char *argv[])
{
    printf("hello, world");
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

然后,我尝试编译:

~$ gcc main.c
main.c:2:21: fatal error: gio/gio.h: No such file or directory
 #include <gio/gio.h>
Run Code Online (Sandbox Code Playgroud)

我相信,我已经安装了正确的软件包指示在这里,并在gio.h存在/usr/include/glib-2.0/gio/gio.h.

我在网上发现了一个向gcc添加搜索目录的命令,但是这导致了其他错误:

~$ gcc -I /usr/include/glib-2.0/ main.c 
In file included from /usr/include/glib-2.0/glib/galloca.h:34:0,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/glib-2.0/gobject/gbinding.h:30,
                 from /usr/include/glib-2.0/glib-object.h:25,
                 from /usr/include/glib-2.0/gio/gioenums.h:30,
                 from /usr/include/glib-2.0/gio/giotypes.h:30,
                 from /usr/include/glib-2.0/gio/gio.h:28,
                 from main.c:2:
/usr/include/glib-2.0/glib/gtypes.h:34:24: fatal error: glibconfig.h: No such file or directory
 #include <glibconfig.h>
                        ^
compilation terminated.
Run Code Online (Sandbox Code Playgroud)

必须有一些相对简单的方法才能设置一些选项/变量(makefile?)来自动包含必要的标题.我还将使用Eclipse-CDT或Anjuta作为IDE,并希望能够帮助修复导入路径(或者在C中调用它).

任何帮助是极大的赞赏.

Bas*_*tch 4

使用pkg-config(和make)。确切地看到这个非常相似问题的答案。另请参阅这个那个答案。不要忘记-Wall -g标记gcc..

您不需要 IDE 来编译代码(IDE 只会运行一些gcc命令,因此最好自己了解如何使用它们)。

  • 谢谢你的提示。这有效`gcc -Wall -g main.c $(pkg-config --libs --cflags glib-2.0) -o main`。我必须学习 make,但这至少会让我开始。 (3认同)