1. 程式人生 > >undefined reference to `vtable for YAML::BadConversion' 報錯的解決方法

undefined reference to `vtable for YAML::BadConversion' 報錯的解決方法

 Bug

  在編譯用到yaml程式的時候,遇到如下報錯:

/home/liuhang/Documents/Momenta/catkin_ws/devel/lib/libloam.so: undefined reference to `vtable for YAML::BadConversion'
/home/liuhang/Documents/Momenta/catkin_ws/devel/lib/libloam.so: undefined reference to `typeinfo for YAML::BadConversion'
/home/liuhang/Documents/Momenta/catkin_ws/devel/lib/libloam.so: undefined reference to `YAML::BadConversion::~BadConversion()'
/home/liuhang/Documents/Momenta/catkin_ws/devel/lib/libloam.so: undefined reference to `YAML::detail::node_data::convert_to_map(std::shared_ptr<YAML::detail::memory_holder>)'

Solution

最終在yaml的github中找到了解決方法。

下載0.5.1版本的yaml https://github.com/jbeder/yaml-cpp/releases,把之前安裝的yaml刪掉,重新編譯安裝。

至於怎麼刪除以前版本的yaml,直接把之前編譯yaml的資料夾全部刪掉就OK了。

至於怎麼重新編譯安裝,mkdir build, cd build, cmake .. , make, sudo make install 。

轉載請註明出處~