没有使用正确的boost库

Cmake not using the right boost library

本文关键字:boost      更新时间:2023-10-16

我有两个boost版本:

  • 第一个(从xcode我猜)有文件在/usr/local/include/boost/usr/local/lib/boost

  • 第二个(来自自制)有文件在/usr/local/Cellar/boost/1.54.0/include/boost/usr/local/Cellar/boost/1.54.0/lib

由于我想使用第二个,我调用cmake来创建我的makefile,并以这种方式编译我的项目:

cmake -DBOOST_ROOT=/usr/local/Cellar/boost/1.54.0/ .
make

我得到这个错误:

/usr/local/include/boost/functional/hash/extensions.hpp:54:17: error: 
  variable 'hash_value' declared as a template
std::size_t hash_value(std::list<T, A> const& v);
            ^

显然,使用的boost版本不是我提到的使用BOOST_ROOT的版本。我如何确保所使用的boost版本是/usr/local/Cellar/boost/1.54.0/中的版本?

Thanks in advance

我的猜测是,你有另一个依赖,需要-I/usr/local/include/在标志中,-I标志是由编译器看到-I/usr/local/Cellar/boost/1.54.0/include之前。

使用:

调试编译过程
make VERBOSE=1
查看使用的编译命令。