配置 makefile 时如何包含其他目录

How to include additional directories when configuring makefiles

我正在尝试编译 geany-plugins-1.28。调试器插件(我唯一需要的)给出错误:

debug.c:53:21: fatal error: vte/vte.h: No such file or directory
#include <vte/vte.h>

显然它需要知道这个文件所在的位置才能编译。我在主程序geany-1.28的src目录下找到了vte.h文件。当运行宁

sudo ./configure cflags=-I/home/pi/Desktop/geany-1.28/src

我在稍后尝试编译调试器插件时遇到了关于缺少 header 的相同错误。

我运行

./configure --help 

获取所有标志选项。输出为 here

如何正确配置它以便编译。我需要自己编译调试器版本 1.28,因为 apt 只安装 1.24,我认为它有一个错误,因为当我 运行 我的代码出现错误时它崩溃了:

close failed in file object destructor:
sys.execpthook is missing
lost sys.stderr

CFLAGS 是区分大小写的环境变量,所以你应该在 运行 配置之前设置它,而不是试图将它作为命令行参数传递。此变体:

$ export CFLAGS=-I/home/pi/Desktop/geany-1.28/src
$ ./configure

为当前 shell 保留 CFLAGS 设置,直到您离开它。虽然这样:

$ CFLAGS=-I/home/pi/Desktop/geany-1.28/src ./configure

仅为当前命令设置变量,即configure

其他一些问题:

  • 您不需要sudo来配置和制作。如果将 PREFIX 设置为您有权写入的路径,则 make install 也没有必要。
  • 插件的构建系统是否也构建它的所有依赖项?否则,稍后您可能会遇到链接器错误。

更新:

我已尝试构建 debugger 插件并消除了您的错误。似乎 Geany 附带的 vte.h 是它固有的,而插件需要库中的全功能文件。所以我刚刚从 repos 安装了 vtevte-devel。尽管如此,我还是从 Glib 得到了一些其他不相关的错误。我现在不会继续尝试构建所有这些。希望我的努力至少能有所帮助。

所述,vte.h 不是您要查找的文件。在您的系统上安装 libvte(-dev) 包并重新运行配置。

仅作记录:Geany 上的 vte.h 是一个虚拟对象,允许 Geany 动态启用或禁用它,具体取决于系统上是否安装了 vte。