首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >修改autoconf以正确定位标头

修改autoconf以正确定位标头
EN

Stack Overflow用户
提问于 2013-08-09 15:14:44
回答 2查看 491关注 0票数 1

情况是,我试图让我从互联网(http://findingscience.com/pymur/)获得的代码编译,而且我在我正在工作的机器上没有SUDO权限。

我将问题追溯到configure.ac中的一行:

代码语言:javascript
复制
AC_CHECK_HEADER([indri/Index.hpp],,[
   AC_MSG_ERROR([Could not find lemur's header files.])
])

因为我收到了来自./configure的错误消息,上面写着:

代码语言:javascript
复制
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 )(因为我没有根权限)就可以编译代码的解决方案,都将不胜感激。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 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维护者应该解决的问题。

票数 1
EN

Stack Overflow用户

发布于 2013-08-09 23:46:16

您绝对不需要或不希望修改configure.ac。只需将头文件安装到您有写权限的地方,并告诉配置脚本如何找到它们。例如,如果您在主目录中安装了报头(因此$ HOME /include/indri/Index.hpp存在),那么运行:

代码语言:javascript
复制
configure CPPFLAGS=-I$HOME/include

这应该适用于大多数平台。请注意,使用路径configure.ac修改/path/to/indri/Index.hpp将失败,因为工具链将使用该路径作为相对路径,并且可能正在寻找类似于/usr/include/path/to/indri/Index.hpp的位置。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18150055

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档