2016-07-13 42 views
1

我试图编译geany-plugins-1.28。调试器插件(唯一一个我需要)给出了错误:如何在配置makefile时包含其他目录

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自己,因为容易只安装1.24,我认为有一个错误,因为它运行我的代码错误崩溃:

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

回答

1

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

只是为了记录:Gent上的vte.h是一个虚拟的,允许geany动态启用vte或禁用它,这取决于vte是否安装在系统上。

+0

谢谢,这工作。我不知道我怎么没有早点知道。 – Jkallus

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配置和制造。如果您将PREFIX设置为您有权写入的路径,则make install也是不必要的。
  • 插件的构建系统是否也构建了它的所有依赖关系?如果没有,您稍后可能会遇到链接器错误。

更新:

我曾试图建立debugger插件,并摆脱了你的错误。看来vte.h与Geany一起是它的内在,而插件需要来自库的全功能文件。所以我刚刚安装了vtevte-devel。尽管如此,我还是得到了来自Glib的其他不相关的错误。我现在不会继续尝试构建这一切。希望我的努力至少会有所帮助。

+0

我只是试过这个,仍然得到了关于vte.h未找到相同的错误。 CFLAGS甚至可以设置正确的变量吗?我是在Linux上编译的新手。 – Jkallus

+0

./configure以递归方式为单个插件创建makefile。当我编译时,我只编译调试器插件。 – Jkallus

+0

@Jkallus什么是'vte.h'的确切路径?如果它是'/ home/pi/Desktop/geany-1.28/src/vte.h',你会得到这个错误,因为'#include '''I'指向'...../src'想要文件放在'/ home/pi/Desktop/geany-1.28/src/vte/vte.h'中。 quick-n-dirty的解决方法是'ln -s /home/pi/Desktop/geany-1.28/src/home/pi/Target/geany-1.28/src/vte'。 – Sergey

相关问题