Gtk找不到“”

我在网上找到了很多关于各种gtk使用的例子,但是大多数都包含了包含的头文件

#include <config.h>

而且我不能在任何地方找到这个标题,所以我无法让这些例子起作用.

这是关于什么的?
在哪里我可以采取或我可以取代这个标题?
或者我可以不同地配置这些文件/项目以使其工作,因为其他gtk项目在我的comp上工作?

目前我尝试编译套接字示例testsocket.c
在编译期间,我得到错误未定义的引用’create_child_plug’.除了在这个标题中,我认为没有任何理由不起作用.
但无论如何我可能是错的.

最佳答案
我认为你正在尝试自己编译一个单独的源文件,而不是单独使用它.两个原因.

第一个原因:config.h是Autoconf输出的头文件的默认名称,包含特定于平台的定义.这就是为什么你不会在任何地方找到它 – 它是在你的项目上运行./configure时产生的,它的内容取决于你的系统配置方式.因此它不会包含在任何项目中,您必须使用Autoconf自己生成它.或者只是注释掉#include< config.h>并查看缺少的定义,然后自己定义它们.

另一个原因:

Currently I try to compile socket example testsocket.c and during compilation I get error undefined reference to ‘create_child_plug’. I don’t see any reason for this to don’t work except in this header.
But I may be wrong anyway.

实际上,该文件包含create_child_plug的定义:

extern guint32 create_child_plug (guint32 xid, gboolean local);

所以问题不在于没有定义create_child_plug.您不需要标题,它在源文件中定义. extern表示此函数的实际代码位于不同的源文件中.在这种情况下,您将获得链接时(非编译时)错误,因为链接器无法找到该函数的任何代码.您应该在.c文件中查找它,而不是.h文件,并编译该代码.

我建议你下载整个GTK源代码并编译它,并从那里运行测试程序,而不是从网上挑选单个源文件.

转载注明原文:Gtk找不到“” - 代码日志