OB单元测试编译源码问题

【 使用环境 】生产环境 or 测试环境:虚拟机Vmware下的Ubuntu 22.04
【 OB or 其他组件 】
【 使用版本 】4.1.0
【问题描述】按照官方github编译release版本,在最后完成96%的时候报错:
ld.lld: error: undefined symbol: pthread_mutexattr_setrobust_np

referenced by proc_mutex.c
proc_mutex.o:(proc_mutex_pthread_create) in archive …/…/…/deps/3rd/usr/local/oceanbase/deps/devel/lib/libapr-1.a
did you mean: pthread_mutexattr_setrobust_np@GLIBC_2.4
defined in: /lib/x86_64-linux-gnu/libc.so.6

ld.lld: error: undefined symbol: pthread_mutex_consistent_np

referenced by proc_mutex.c
proc_mutex.o:(proc_mutex_pthread_acquire) in archive …/…/…/deps/3rd/usr/local/oceanbase/deps/devel/lib/libapr-1.a
referenced by proc_mutex.c
proc_mutex.o:(proc_mutex_pthread_tryacquire) in archive …/…/…/deps/3rd/usr/local/oceanbase/deps/devel/lib/libapr-1.a
did you mean: pthread_mutex_consistent_np@GLIBC_2.4
defined in: /lib/x86_64-linux-gnu/libc.so.6

ld.lld: error: undefined symbol: sys_siglist

referenced by signals.c
signals.o:(apr_signal_description_get) in archive …/…/…/deps/3rd/usr/local/oceanbase/deps/devel/lib/libapr-1.a

ld.lld: error: undefined symbol: pthread_yield

referenced by thread.c
thread.o:(apr_thread_yield) in archive …/…/…/deps/3rd/usr/local/oceanbase/deps/devel/lib/libapr-1.a
clang-11: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [src/observer/CMakeFiles/observer.dir/build.make:161:src/observer/observer] 错误 1
make[1]: *** [CMakeFiles/Makefile2:10330:src/observer/CMakeFiles/observer.dir/all] 错误 2
make: *** [Makefile:166:all] 错误 2

查了一下好像是pthread相关的问题,这里编译似乎需要直接引用/usr/lib/libpthread.so这个文件,但我的pthread相关库安装是/usr/lib/x86_64-linux-gnu/libpthread.so.0,不在上一级目录下,而且无法重新apt安装这个库,会显示已安装,不知道如何解决
以及还报了一个其他地方的错误,不知道是不是这个相关的
【复现路径】按照官方文档的指令“https://github.com/oceanbase/oceanbase/wiki/Compile_CN”
先安装相关依赖:
sudo apt-get install git wget rpm rpm2cpio cpio make build-essential binutils m4
编译release版本:
bash build.sh release --init --make
【问题现象及影响】
采用了符号链接在/usr/lib下创建了指向我的库的libpthread.so,但还是无法解决,后面的单元测试也尝试执行,报错仍然是关于pthread,请各位大佬帮帮忙!
【附件】

Ubuntu 22现在还不支持。
Ubuntu 16.04 / 18.04 / 20.04 ,现在支持这些。

谢谢!那我可不可以理解为22之前版本ubuntu的pthread库会直接安装到/usr/lib下,而22是安装在/usr/lib/x86_64-linux-gnu下的呢?

安装到哪里都不应该影响链接libpthread.so。看报错信息,是新版本的unbuntu上修改了一些实现。

好的谢谢!后面把env.cmake文件里面加了-pthread参数,再看看能不能成功

-pthread 其实已经加进来了

这个问题处理的如何?

是APR库在unbuntu22或类似高版本操作系统上的问题,当前问题已经解决。