编译器找不到头文件,是否将目录添加到PATH?

编译器找不到头文件,是否将目录添加到PATH?

我正在尝试使用位于的 gtk /usr/include/gtk-3.0/gtk/ ..,但所有的头文件该工具包有#include <gtk/gtk.h>.

除了添加/usr/local/gtk-3.0PATH添加到gtk-3.0所有包含预处理器之外,还有哪些其他选项?

答案1

在这种情况下,将适当的目录添加到包含路径正是您应该做的,只是您应该通过pkg-config.不支持使用完整路径名直接访问文件。

将这样的内容添加到您的Makefile

CFLAGS += `pkg-config --cflags gtk+-3.0`
LIBS += `pkg-config --libs gtk+-3.0`

这将自动为当前系统添加正确的编译器和链接器选项。

答案2

环境PATH变量是可执行文件的搜索路径,而不是其他类型文件的搜索路径。对于包含文件,您需要安排将选项传递-I/usr/include/gtk-3.0/gtk给编译器。通常,您可以通过设置由 makefile 定义的变量(通常为CFLAGS='-I/usr/include/gtk-3.0/gtk')或将参数传递给./configure(通常为./configure --includedir=/usr/include/gtk-3.0/gtk)来完成此操作。

对于遵循 Freedesktop 实践的 Gtk 和其他软件,指示包含文件以及其他编译器和链接器选项的位置的正确方法是pkg 配置,正如 Celada 的回答中所描述的

相关内容