C++11 boost&x27的问题;使用yaml cpp时的共享\u ptr

C++11 boost&x27的问题;使用yaml cpp时的共享\u ptr,c++11,boost,cmake,yaml-cpp,C++11,Boost,Cmake,Yaml Cpp,我试图在代码中使用yaml cpp,但出现以下错误: yaml cpp/0.5.1/include/yaml cpp/node/detail/node_ref.h:47:95:erreur:使用删除的函数'boost::shared_ptr::shared_ptr(const boost::shared_ptr&)' void push_back(节点&节点,共享内存){m_pData->push_back(节点,内存);} 导致此错误的代码是: #include <cstdlib>

我试图在代码中使用yaml cpp,但出现以下错误:

yaml cpp/0.5.1/include/yaml cpp/node/detail/node_ref.h:47:95:erreur:使用删除的函数'boost::shared_ptr::shared_ptr(const boost::shared_ptr&)' void push_back(节点&节点,共享内存){m_pData->push_back(节点,内存);}

导致此错误的代码是:

#include <cstdlib>
#include <yaml-cpp/yaml.h>
int main()
{
    YAML::Emitter out;
    return EXIT_SUCCESS;
}
你能帮帮我吗

编辑:当我从编译命令行中删除-std=c++11标志时,问题就消失了

编辑:要解决这个问题,您必须在编译命令行中输入boost安装的include目录的路径。请参见用户744629回答下面的注释。

Edit 正如评论所说,
yaml-cpp
是正确构建和安装的,但是编译可执行文件需要
-I
标志以包含
Boost
yaml-cpp
是使用构建的,否则使用系统目录中太旧的
Boost

原始答案 下面是我用来构建
yaml-cpp
的命令行,其中
Boost
安装在非标准位置:

cmake \
    -DCMAKE_INSTALL_PREFIX=$PREFIX \
    -DBoost_INCLUDE_DIR=$PREFIX/boost_1_55_0 \
    -DBUILD_SHARED_LIBS=ON \
    ..
请参阅全文


希望能有所帮助。

非常感谢您的帮助,但是我在您的cmake命令行中仍然存在相同的问题。在编译main.cxx时,是否放置了-I/usr/local/boost/1.57.0/include标志?
cmake \
    -DCMAKE_INSTALL_PREFIX=$PREFIX \
    -DBoost_INCLUDE_DIR=$PREFIX/boost_1_55_0 \
    -DBUILD_SHARED_LIBS=ON \
    ..