ubuntu下将yaml cpp从git上拉取后make 和install后,在项目中引用yaml cpp,编译时报
undefined reference to `YAML::detail::node_data::empty_scalar[abi:cxx11]()'
和undefined reference to `YAML::detail::node_data::convert_to_map(std::shared_ptr<YAML::detail::memory_holder> const&)'
尝试了网上说的添加find_package(yaml-cpp REQUIRED)或者-lyaml-cpp选项以及添加
YAML::BadConversion::~BadConversion()
{
}
void YAML::detail::node_data::convert_to_map(std::shared_ptr<YAML::detail::memory_holder>)
{
}
都无济于事。
最终解决方法,改为使用yaml cpp静态库,不使用动态库,即编译成功。
link_directories(/usr/local/lib)或者link_directories(libyaml-cpp.a文件所在的目录)
target_link_libraries(projectname yaml-cpp)