所以我试图通过这个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的了解不够,或者我缺少什么来自己修复它。
这就是问题开始的地方:
以下是config.log文件中'- lboost_filessystem -mt'的周围行。检查boost/filessystem .hpp…是的
检查main in - lboost_filessystem -mt…没有
configure: error: no boost。文件系统库找到
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:$ ?
= 1configure: 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宏。