c - Gtk 找不到 "<config.h>"

标签 c gtk

我在网上找到了很多关于 gtk 各种用途的示例,但其中大部分都包含包含的 header

#include <config.h>

而且我无法在任何地方找到这个 header ,所以我无法让这些示例起作用。

这是关于什么的?
我可以把这个 header 带到哪里或用什么替换它?
或者我可以不同地配置这些文件/项目,让它们像其他 gtk 项目在我的 comp 上工作一样工作?

目前我尝试编译套接字示例testsocket.c和 在编译过程中,我收到错误 undefined reference to 'create_child_plug'。除了在这个 header 中,我看不出有任何理由让它不起作用。
但无论如何我可能是错的。

最佳答案

我认为您正在尝试自行编译单个源文件,该文件并非设计用于独立运行。两个原因。

第一个原因: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未定义。您不需要 header ,它已在源文件中定义。 extern意味着此函数的实际代码在不同的源文件中。在这种情况下,您会收到链接时(而非编译时)错误,因为链接器找不到该函数的任何代码。您应该在 .c 中查找它文件,而不是 .h文件,并编译该代码。

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

关于c - Gtk 找不到 "<config.h>",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9439744/

相关文章:

user-interface - 在 GTK3 (gtk-rs) 中用于像素绘制的 Canvas

对 st_ino 感到困惑?

ANTLR v4 的 C 语法

c - 在 C 语言中使用 'fgets' 在 'printf' 之后出现问题,因为 'fgets' 在 'printf' 之前运行

c - 检测 GtkTreeView 行的鼠标移出

GTK 获取 slider 值

c - 如何在 C 中的 GTK3 中创建自定义小部件?

python - 安装Python GTK

c - gcc,枚举未按预期打包

c - 使用默认编译器(gcc-4.2)的 mac(OSX-10.9.2)上的 fork 与普通 fork 有什么不同吗?