我正在尝试将ncurses安装到一个非系统范围的前缀(用于交叉编译)。
一切正常,我能够将ncurses安装到指定的前缀中,头文件驻留在<prefix>/include/ncurses中。
我正在试图编译的一个程序(特别是GHC)找不到头文件,因为它尝试#include <ncurses.h>,这是不工作的。(include <ncurses/ncurses.h>确实能工作,但GHC没有尝试过这一点。)
因此,我认为直接将头安装到<prefix>/include会有帮助,但我无法做到这一点。将--includedir=<prefix>/include传递给ncurses的配置脚本并没有给出所需的结果,因为已安装的ncurses.h随后尝试使用#include <include/ncurses_dll.h>,但这不起作用。
当然,<prefix>/include在使用的CPP的搜索路径中。
发布于 2015-03-22 18:19:04
通常,用于基于autoconf的配置脚本的--includedir用于告诉makefile在何处安装头文件,而不是在编译期间将它们包含在何处。
相反,您可能希望设置的选项将在CPPFLAGS变量中。例如,由于GHC只希望ncurses头文件位于标准位置,因此可以通过在-I中将这两个目录指定为CPPFLAGS选项来解决这个问题。
以下是一些有助于帮助的讨论:
顺便说一下,那个前缀/lib看起来很奇怪..。
关于--disable-overwrite的评论,Linux和其他一些平台默认启用此功能。OSX就不是这样。在配置结束时,配置脚本运行makefile规则来显示结果配置。如果禁用了覆盖,您将看到如下消息:
** Include-directory is not in a standard locationhttps://stackoverflow.com/questions/29195844
复制相似问题