使用 "gcc $(pkg-config --cflags --libs glib-2.0) context.c" 编译时出错 -> <galloca.h> 未找到
Error when compiling with "gcc $(pkg-config --cflags --libs glib-2.0) context.c" -> <galloca.h> not found
我试图用“gcc $(pkg-config --cflags --libs glib-2.0)”context.c.
编译我的 context.c 文件
但是因为没有找到galloca头文件所以不行:
context.c:3:10: 致命错误: galloca.h: 找不到文件或目录 #include
我尝试了“gcc $(pkg-config --cflags --libs glib-2.0 glib)”,其中 galloca.h 位于 /usr/include/glib-2.0/glib。但是编译命令加上glib后,连glib.h都找不到了,在/usr/include/glib-2.0.
我尝试使用“export PKG_CONFIG_PATH=/usr/include/glib-2.0/gio/pkgconfig”等将所有必要的路径添加到 PKG_CONFIG_PATH 等等....没有成功。
我还将所有必要的库路径添加到 /etc/ld。so.conf 和 sudo ldconfig -v,也没有成功。
这不是我第一次遇到这个问题,在编译时在这个系统上找不到必要的库,但正如我们在德国所说:“我在我的拉丁文末尾”,所以我不知道如何解决这个问题,如果有任何帮助,我们将不胜感激。
提前致谢。
PS:我使用 raspberry pi 4B 8GB 和 raspbian linux.
你的库路径不会帮助它找到包含文件。
也许你想要-I/usr/include/glib-2.0 -I/usr/include/glib-2.0/glib
也许您的构建脚本接受 CFLAGS
环境变量,您可以在其中放置此选项。
或者您可能更改(编辑)源代码,
#include <galloca.h>
成为
#include <glib/galloca.h>
因为它在 /usr/include/glib-2.0
中看起来是正确的,只有子目录是错误的
之后您会发现是否还必须为库设置一些路径。不过一件一件的,先编译,再操心link。你说的是ld.so.conf
。这实际上是针对运行时的,但是好吧,在构建时它是尝试其他所有方法后的最后一个选项(参见 man ld
并搜索 ld.so.conf
)。真正对于构建时间库路径,你想要 -L
选项可能与 LDFLAGS
环境变量。但正如我所说,首先尝试编译,然后发现是否 link 问题。
Wer mit seinem Latein am Ende ist, muss Griechisch sprechen.
我试图用“gcc $(pkg-config --cflags --libs glib-2.0)”context.c.
编译我的 context.c 文件但是因为没有找到galloca头文件所以不行:
context.c:3:10: 致命错误: galloca.h: 找不到文件或目录 #include
我尝试了“gcc $(pkg-config --cflags --libs glib-2.0 glib)”,其中 galloca.h 位于 /usr/include/glib-2.0/glib。但是编译命令加上glib后,连glib.h都找不到了,在/usr/include/glib-2.0.
我尝试使用“export PKG_CONFIG_PATH=/usr/include/glib-2.0/gio/pkgconfig”等将所有必要的路径添加到 PKG_CONFIG_PATH 等等....没有成功。
我还将所有必要的库路径添加到 /etc/ld。so.conf 和 sudo ldconfig -v,也没有成功。
这不是我第一次遇到这个问题,在编译时在这个系统上找不到必要的库,但正如我们在德国所说:“我在我的拉丁文末尾”,所以我不知道如何解决这个问题,如果有任何帮助,我们将不胜感激。
提前致谢。
PS:我使用 raspberry pi 4B 8GB 和 raspbian linux.
你的库路径不会帮助它找到包含文件。
也许你想要-I/usr/include/glib-2.0 -I/usr/include/glib-2.0/glib
也许您的构建脚本接受 CFLAGS
环境变量,您可以在其中放置此选项。
或者您可能更改(编辑)源代码,
#include <galloca.h>
成为
#include <glib/galloca.h>
因为它在 /usr/include/glib-2.0
中看起来是正确的,只有子目录是错误的
之后您会发现是否还必须为库设置一些路径。不过一件一件的,先编译,再操心link。你说的是ld.so.conf
。这实际上是针对运行时的,但是好吧,在构建时它是尝试其他所有方法后的最后一个选项(参见 man ld
并搜索 ld.so.conf
)。真正对于构建时间库路径,你想要 -L
选项可能与 LDFLAGS
环境变量。但正如我所说,首先尝试编译,然后发现是否 link 问题。
Wer mit seinem Latein am Ende ist, muss Griechisch sprechen.