如何调试缺失的符号 - 从哪里需要?

时间:2015-03-18 17:13:34

标签: c++ r symbols undefined-symbol

.so中加载R文件时,我得到了

undefined symbol: _ZN5boostlsIcSt11char_traitsIcEdEERSt13basic_ostreamIT_T0_ES7_RKNS_8optionalIT1_EE

解压缩产生

std::basic_ostream<char, std::char_traits<char> >& boost::operator<< <char, std::char_traits<char>, double>(std::basic_ostream<char, std::char_traits<char> >&, boost::optional<double> const&) 

我不知道符号要求来自哪里。 /boost/optional/optional_io.hpp定义了这样一个运算符,但它是一个内联定义。

从哪里开始?我可以找出哪个代码需要这个符号吗?

1 个答案:

答案 0 :(得分:0)

我去了中间目录并做了

for x in *.o; do echo $x; nm $x | grep "_ZN5boostlsIcSt11"; done

这使我能够追踪编译单元,这反过来又让我找到(手动)有问题的代码。