首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Boost和Autoconf

Boost和Autoconf
EN

Stack Overflow用户
提问于 2010-06-22 03:58:50
回答 3查看 6.3K关注 0票数 11

我正在做一个使用Autoconf的项目。我在configure.ac中有以下内容

代码语言:javascript
复制
AC_CHECK_HEADERS([boost/foreach.hpp], [],
    [AC_MSG_ERROR(You need the Boost libraries.)])

当我运行configure时,它说找不到这个头文件:

代码语言:javascript
复制
checking boost/foreach.hpp usability... no
checking boost/foreach.hpp presence... no
checking for boost/foreach.hpp... no
configure: error: You need the Boost libraries.

这很奇怪,因为我有Boost。如果我取消检查,代码就会编译,并且我已经安装了Boost:

代码语言:javascript
复制
$ find /usr/include -name foreach.hpp
/usr/include/boost/foreach.hpp
/usr/include/boost/test/utils/foreach.hpp

请注意,我使用SDL做了完全相同的操作,并且它是有效的。

代码语言:javascript
复制
AC_CHECK_HEADERS([SDL/SDL.h], [],
    [AC_MSG_ERROR(You need the SDL development library.)])

..。

代码语言:javascript
复制
checking SDL/SDL.h usability... yes
checking SDL/SDL.h presence... yes
checking for SDL/SDL.h... yes
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-06-22 04:26:10

AC_CHECK_HEADERS实际上做的是编译检查,而不是存在检查。因此,您必须为编译测试设置C++支持,以便编译boost头文件(默认为C,docs here):

代码语言:javascript
复制
AC_LANG_PUSH([C++])
AC_CHECK_HEADERS([boost/foreach.hpp], [],
    [AC_MSG_ERROR(You need the Boost libraries.)])
AC_LANG_POP([C++])
票数 16
EN

Stack Overflow用户

发布于 2010-06-22 14:13:04

您可能会对github.com/tsuna/boost.m4感兴趣,它是一组Autoconf宏,用于检查Boost头文件和库以及Boost的最低版本。

票数 9
EN

Stack Overflow用户

发布于 2010-08-20 08:30:15

GNU Autoconf Archive上还有一个Boost autoconf宏的集合。您可能至少需要AX_BOOST_BASE。其他Boost库的其他宏也在那里。

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

https://stackoverflow.com/questions/3088069

复制
相关文章

相似问题

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