configure:error:找不到boost.filesystem库

时间:2014-08-09 20:28:30

标签: c++ linux ubuntu boost

所以我试图通过这个github安装ncmpcpp,第一步是运行sh autogen.sh脚本。我遇到了一些丢失的库等等,但我已经能够安装它们并继续进行到现在为止。我已经做了一些搜索并安装了一些我认为有助于修复它的东西,但无济于事。

sudo apt-get install libboost1.55-all-dev

sudo apt-get install libboost-system-dev

sudo apt-get install libboost-system1.54-dev

sudo apt-get install libboost1.54-dev

sudo apt-get install libboost-filesystem-dev

sudo apt-get install libboost-filesystem-dev libboost-thread-dev

事实是,我对Boost的了解不够,或者我缺少自己解决的问题。

这是问题的开始:

  

检查boost / filesystem.hpp ...是

     

在-lboost_filesystem-mt中检查main ...否

     

configure:error:找不到boost.filesystem库

编辑:以下是config.log文件中'-lboost_filesystem-mt'的周围行。

  

configure:15510:在-lboost_filesystem-mt

中检查main      

configure:15529:g ++ -o conftest -g -O2 -std = c ++ 0x conftest.cpp -lboost_filesystem-mt>& 5

     

/ usr / bin / ld:找不到-lboost_filesystem-mt

     

collect2:错误:ld返回1退出状态

     

配置:15529:$? = 1

     

configure:失败的程序是:

     

| / * confdefs.h * /

...然后继续描述confdefs.h文件。

1 个答案:

答案 0 :(得分:5)

configure.ac删除这些链接(“设置提升环境”部分):

AS_IF([test -z "${BOOST_LIB_SUFFIX+x}"], [BOOST_LIB_SUFFIX=-mt])
AC_ARG_VAR([BOOST_LIB_SUFFIX], [Boost library name suffix [default=-mt]])

很久以前,Boost库曾经有一个-mt后缀来表示它们是多线程感知的。 Debian / Ubuntu在几年前就放弃了。也许其他发行版保留了它。 Boost库名称在任何情况下都从未非常标准化,这就是configure脚本经常尝试处理它们的原因,通常是以破碎的方式处理。

你可以删除这两行或者像这样调用它:

$ BOOST_LIB_SUFFIX="" ./autogen.sh

正确的解决方法是将脚本转换为使用the Autoconf Archive中的Boost宏。