【发布时间】:2013-09-09 04:45:32
【问题描述】:
我正在尝试将 glib 静态链接到我的 C 程序中。我不确定这样做的最佳方法是什么。我下载了代码并将其放在名为 glib-2.36.4 的子目录中。我在使用 gcc 时添加了“-Iglib-2.36.4”。 glib.h 位于 glib-2.36.4/glib 目录中,该文件中引用了 glib 目录下的其他头文件(例如 #include )。
我不确定为什么会这样,因为 glib.h 和这些其他头文件都在同一级别(在 glib 子目录中)。由于找不到galloca.h(即使它在那里),我得到一个编译错误。所以我将 glib.h 复制了一层,这些错误就消失了。然后我收到一个关于缺少 glibconfig.h 的错误。我从我的 usr 目录中复制了它,并且该错误消失了。我编译了我的项目,现在我收到关于未定义引用 g_ptr_array_new 的错误。我想这一定是因为我还没有真正编译过 glib。我曾尝试构建 glib,但是当我输入“./configure”时,我收到了以下消息:
checking if arpa/nameser_compat.h is needed... configure: error: could not compile test program either way
我确实使用 yum 安装了 glib,但我真的希望即使机器上没有安装 glib 也能运行这段代码。
【问题讨论】:
-
您似乎不知道自己在做什么。
-l链接器标志用于指定已编译的库(在您的情况下为.a文件),并且您似乎没有成功编译该库,这是链接它的先决条件。