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

时间:2016-07-13 17:51:06

标签: linux makefile configure geany geany-plugin

我正在尝试编译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

我在稍后尝试编译调试器插件时得到了与丢失标头相同的错误。

我跑了

./configure --help 

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

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

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

2 个答案:

答案 0 :(得分:2)

CFLAGS是区分大小写的环境变量,因此您应该在运行configure之前设置它,而不是尝试将其作为命令行参数传递。这个变种:

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

将CFLAGS设置为当前shell,直到您离开它为止。虽然这个:

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

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

其他一些问题:

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

更新

我尝试构建debugger插件并摆脱了您的错误。 Geany的vte.h似乎是内在的,而插件需要来自库的全功能文件。所以我刚从repos安装了vtevte-devel。然而,我从Glib得到了一些其他无关的错误。我现在不会继续努力建立这一切。希望我的努力至少有一点帮助。

答案 1 :(得分:1)

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

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