错误描述
/home/×××/anaconda3/lib/libfontconfig.so.1: undefined reference to `FT_Done_MM_Var'
collect2: error: ld returned 1 exit status
解决方案
# 终端输入
locate libfontconfig.so.1
# 可以看到在/home/×××/anaconda3/lib/路径下有两个版本的文件,一个老版本一个新版本
/home/mxx/anaconda3/lib/libfontconfig.so.1
/home/mxx/anaconda3/lib/libfontconfig.so.1.12.0
/home/mxx/anaconda3/lib/libfontconfig.so.1.9.0
# 查看当前库的版本
ll -a /home/mxx/anaconda3/lib/libfontconfig.so.1
# 显示如下
/home/mxx/anaconda3/lib/libfontconfig.so.1 -> libfontconfig.so.1.12.0*
# 删除不匹配的新版本的链接,建立老版本的软连接
rm /home/mxx/anaconda3/lib/libfontconfig.so.1
ln -s /home/mxx/anaconda3/lib/libfontconfig.so.1.9.0 /home/mxx/anaconda3/lib/libfontconfig.so.1
# 查看修改后的软连接:
ll -a /home/mxx/anaconda3/lib/libfontconfig.so.1
# 结果如下:
/home/mxx/anaconda3/lib/libfontconfig.so.1 -> /home/mxx/anaconda3/lib/libfontconfig.so.1.9.0
# 编译通过
参考
https://stackoverflow.com/questions/53910698/undefined-reference-to-ft-done-mm-var
注意事项
后续编译、运行mmdetection框架下的网络时,如果报相似的错误,可能需要将软链接版本切换到新版本中