【发布时间】:2021-04-07 14:14:52
【问题描述】:
ninja(版本:1.9.0)输出:
mergetree_test.cpp:(.text+0x19f): undefined reference to `DB::executeQuery(std::string const&, DB::Context&, bool, DB::QueryProcessingStage::Enum, bool)'
nm -A mergetree_test.o | grep executeQuery | c++filt 输出:
mergetree_test.o: U DB::executeQuery(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, DB::Context&, bool, DB::QueryProcessingStage::Enum, bool)
但我从链接库中获得了输出,其中executeQuery 使用相同的方法定义。
libdbms.a:executeQuery.cpp.o:0000000000008750 T DB::executeQuery(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, DB::Context&, bool, DB::QueryProcessingStage::Enum, bool)
__1 是什么意思?我该如何解决这个问题?
【问题讨论】:
-
哪个编译器,哪个版本?
-
g++ (GCC) 10.2.0