/usr/bin/ld: /root/anaconda3/lib/lib***: undefined reference to `std::__throw_bad_array_new_length()@GLIBCXX_3.4.29'
原因
/root/anaconda3/lib 中是Python环境的库。
/usr/lib、/usr/local/lib、/usr/lib/x86**/等路径的库可能会与anaconda中的库产生冲突。
CMake可能会使库引用指向Anaconda环境中的库,由于编译器的不同,在编译过程中则会产生编译error。
解决方法
删除环境变量 PATH 中 anaconda 路径
# 打印现在的环境变量 PATH 包含哪些路径
echo $PATH
# 终端显示 /home/xxx/anaconda3/bin:/usr/xxx/bin:/usr/xxx/local/bin
# 去除/home/xxx/anaconda3/bin
export PATH=/usr/xxx/bin:/usr/xxx/local/bin
# 终端中暂时去除了anaconda3路径