情况是,我试图让我从互联网(http://findingscience.com/pymur/)获得的代码编译,而且我在我正在工作的机器上没有SUDO权限。
我将问题追溯到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 )(因为我没有根权限)就可以编译代码的解决方案,都将不胜感激。
发布于 2013-08-12 18:07:53
通常情况下,我会照威廉·珀塞尔的建议去做。不幸的是,这行不通。我试过了。在pymur包中有一个bug,其中configure.ac依赖于AC_PYTHON_DEVEL宏的一个非常旧的版本,该版本在检查indri/Index.hpp之前破坏CPPFLAGS,因此这些目录将不在g++命令行中。
如果您想解决这个问题,您必须从Autoconf获得一个更多的该宏的更新版本,并将其复制到acinclude.d (在删除acinclude.d/ac_python_devel.m4之后)并重新运行autogen.sh。我能够调用CPPFLAGS="-I /path/to/indri/include" ./configure,而不是让它因为这个特定的问题而绊倒。
这确实是pymur维护者应该解决的问题。
发布于 2013-08-09 23:46:16
您绝对不需要或不希望修改configure.ac。只需将头文件安装到您有写权限的地方,并告诉配置脚本如何找到它们。例如,如果您在主目录中安装了报头(因此$ HOME /include/indri/Index.hpp存在),那么运行:
configure CPPFLAGS=-I$HOME/include这应该适用于大多数平台。请注意,使用路径configure.ac修改/path/to/indri/Index.hpp将失败,因为工具链将使用该路径作为相对路径,并且可能正在寻找类似于/usr/include/path/to/indri/Index.hpp的位置。
https://stackoverflow.com/questions/18150055
复制相似问题