/tmp/ccVIU5fG.o: In function `main':
2D_interpolations.cc:(.text+0x76): undefined reference to `mio::Config::Config(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
2D_interpolations.cc:(.text+0x151): undefined reference to `mio::IOUtils::convertString(mio::Date&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, double const&, std::ios_base& (*)(std::ios_base&))'
我尝试在.cc文件的开头添加以下行
#define _GLIBCXX_USE_CXX11_ABI 0
然后我就可以编译了。但是我收到了与未定义符号相关的错误。使用
c++filt <the undefined symbol>
事实证明,在添加 #define _GLIBCXX_USE_CXX11_ABI 0
之前,未定义的符号实际上与我收到错误的位置完全相同。mio::Config::Config(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)
通过检查是否存在其他未定义的符号,我发现其中也缺少一个(也在上一个错误中)
mio::IOUtils::convertString(mio::Date&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, double const&, std::ios_base& (*)(std::ios_base&))
我知道已经有一些类似的帖子了但是答案对我来说太“理论化”了,因为我刚接触c ++并且我对计算机一无所知......如果你有任何建议可以提供帮助,那你就是'欢迎!
谢谢!
答案 0 :(得分:1)
我设法最终解决了所有问题,所以我在这里发布了解决方案,以防有人感兴趣
要检查我使用的代码库,我使用了命令
ldd -r -d <name of my code file>
通过路径正确检测到第三方lib Im使用
/usr/local/lib/<name of the library file>
但它显然不是一条好路(不要问我为什么),即使得到认可。一个不错的选择是将库文件更改为另一个位置:
/usr/lib/<name of the library file>
它现在完美无缺!