将ncurses头文件安装到<prefix> / include而不是<prefix> / include / ncurses </prefix> </prefix>

时间:2015-03-22 14:56:39

标签: compilation installation ncurses

我试图将ncurses安装到非系统范围的前缀(用于交叉编译)。

一切正常,我能够将ncurses安装到指定的前缀,头文件位于<prefix>/include/ncurses

我尝试编译的程序(特别是GHC)找不到标题,因为它会尝试#include <ncurses.h>,但这并不起作用。 (include <ncurses/ncurses.h>确实有用,但GHC并没有尝试这一点。)

所以我认为直接将标题安装到<prefix>/include就行了,但我无法做到这一点。将--includedir=<prefix>/include传递给ncurses的configure脚本并没有给出所需的结果,因为安装的ncurses.h然后尝试#include <include/ncurses_dll.h>,这不起作用。

<prefix>/include当然是在使用过的CPP的搜索路径中。

1 个答案:

答案 0 :(得分:1)

通常,--includedir用于基于autoconf的配置脚本用于告诉makefile文件安装头文件的位置,而不是包含它们的位置在编译期间。

相反,您可能想要设置的选项位于CPPFLAGS变量中。例如,由于GHC只在标准位置使用ncurses头文件,因此您可以通过在-I中将这两个目录指定为CPPFLAGS选项来解决此问题。

以下是一些有用的讨论:

顺便说一下,前缀 / lib看起来很奇怪......

关于--disable-overwrite的评论,Linux和其他一些平台默认启用此功能。一个OSX没有。在配置结束时,configure脚本运行makefile规则以显示生成的配置。如果禁用覆盖,您将看到如下消息:

** Include-directory is not in a standard location