【 使用环境 】构建环境
【 OB or 其他组件 】unittest
【 使用版本 】oceanbase-4.4.2_CE_BP1
【问题描述】:
unittest编译到test_physical_plan_ctx_serialize_compat, test_expr_serialize_compat就会报错, 最开始是在rocky 9(我自己适配了dep_create.sh)上遇到, 后来改用dep_create.sh支持的almalinux 8也遇到同样的问题
rocky 9时的日志:
[ 97%] Building CXX object unittest/sql/engine/px/CMakeFiles/test_gambling_bound.dir/test_gambling_bound.cpp.o
ld.lld: error: undefined symbol: oceanbase::sql::ObExpr42x::get_serialize_size() const
>>> referenced by test_expr_serialize_compat.cpp:112 (./unittest/sql/engine/expr/test_expr_serialize_compat.cpp:112)
>>> CMakeFiles/test_expr_serialize_compat.dir/test_expr_serialize_compat.cpp.o:(oceanbase::sql::ObExpr42x::serialize(char*, long, long&) const)
ld.lld: error: undefined symbol: oceanbase::sql::ObPhysicalPlanCtx42x::get_serialize_size() const
>>> referenced by test_physical_plan_ctx_serialize_compat.cpp:185 (./unittest/sql/engine/test_physical_plan_ctx_serialize_compat.cpp:185)
>>> CMakeFiles/test_physical_plan_ctx_serialize_compat.dir/test_physical_plan_ctx_serialize_compat.cpp.o:(oceanbase::sql::ObPhysicalPlanCtx42x::serialize(char*, long, long&) const)
clang++-17: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [unittest/sql/engine/expr/CMakeFiles/test_expr_serialize_compat.dir/build.make:161: unittest/sql/engine/expr/test_expr_serialize_compat] Error 1
make[1]: *** [CMakeFiles/Makefile2:14976: unittest/sql/engine/expr/CMakeFiles/test_expr_serialize_compat.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
clang++-17: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [unittest/sql/engine/CMakeFiles/test_physical_plan_ctx_serialize_compat.dir/build.make:161: unittest/sql/engine/test_physical_plan_ctx_serialize_compat] Error 1
make[1]: *** [CMakeFiles/Makefile2:14742: unittest/sql/engine/CMakeFiles/test_physical_plan_ctx_serialize_compat.dir/all] Error 2
almalinux 8时的截图:
【复现路径】:
$ bash build.sh debug --init --make
$ cd build_debug/unittest
$ make -j 1

