情况是我正在尝试从互联网上获取代码(http://findingscience.com/pymur/)进行编译,而我在我正在处理的机器上没有绝对允许。
我已将问题追溯到configure.ac中的一行:
AC_CHECK_HEADER([indri/Index.hpp],,[
AC_MSG_ERROR([Could not find lemur's header files.])
])
因为我收到来自./configure
的错误消息,说:
checking indri/Index.hpp usability... no
checking indri/Index.hpp presence... no
checking for indri/Index.hpp... no
configure: error: Could not find lemur's header files.
我尝试过直接修改它,以便indri/Index.hpp
具有类似/path/to/indri/Index.hpp
的硬编码路径,这似乎没什么帮助。
任何获得代码编译的解决方案,我都不需要修改/ usr这样的目录(因为我没有root权限),我们将不胜感激。
答案 0 :(得分:2)
您绝对不需要或不想修改configure.ac
。只需在您具有写权限的地方安装头文件,并告诉配置脚本如何找到它们。例如,如果在HOME目录中安装标题(以便存在$ HOME / include / indri / Index.hpp),则运行:
configure CPPFLAGS=-I$HOME/include
这应该适用于大多数平台。请注意,使用路径/path/to/indri/Index.hpp
修改configure.ac将会失败,因为您的工具链会将其用作相对路径,并且可能会查找/usr/include/path/to/indri/Index.hpp
等位置。
答案 1 :(得分:1)
通常情况下,我会按照William Pursell的建议行事。不幸的是,这不会奏效。我尝试过这个。 pymur包中有一个错误configure.ac
依赖于非常旧的版本的AC_PYTHON_DEVEL
宏,它会在检查CPPFLAGS
之前查找indri/Index.hpp
,所以这些目录不在g++
命令行中。
如果您想解决这个问题,您必须从Autoconf Macro Archive获得更多updated version of that macro并将其复制到acinclude.d
(删除acinclude.d/ac_python_devel.m4
后)并重新运行{{ 1}}。我能够调用autogen.sh
并且不会因为特定问题而绊倒。
这真是一个问题,pymur维护者应该修复。