配置:error: no 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/filessystem .hpp…是的

检查main in - lboost_filessystem -mt…没有

configure: error: no boost。文件系统库找到

以下是config.log文件中'- lboost_filessystem -mt'的周围行。

configure:15510:检查main in - lboost_filessystem -mt

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

/usr/bin/ld: cannot find - lboost_filessystem -mt

collect2: error: ld returned 1 exit status

配置:15529:$ ?

= 1

configure: failed program was:

|/* confdefs.h */

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

configure.ac ("setting boost environment"一节)中删除这些链接:

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

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

最新更新