_dlib_pybind11.cpython-38-x86_64-linux-gnu.so: undefined symbol: culibosInitializeCritical 错误修改

       ubuntu下使用Python3编译dlib源码时一切正常,但在import dlib 时出现_dlib_pybind11.cpython-38-x86_64-linux-gnu.so: undefined symbol: culibosInitializeCritical错误。从错误本身来说是在生成_dlib_pybind11.cpython-38-x86_64-linux-gnu.so库时缺少libculibos.a库的链接,所以修改配置文件解决:

修改dlib-19.21/build/temp.linux-x86_64-3.8/CMakeCache.txt文件中的cudnn:FILEPATH

修改前:cudnn:FILEPATH=/usr/local/cuda/lib64/libcudnn.a

修改后:cudnn:FILEPATH=/usr/local/cuda/lib64/libcudnn.a;/usr/local/cuda/lib64/libculibos.a

保存CMakeCache.txt后,直接在dlib-19.21/build/temp.linux-x86_64-3.8目录下执行make重新生成_dlib_pybind11.cpython-38-x86_64-linux-gnu.so

最后切换目录到dlib-19.21执行python3 setup.py install

如果编译之前已经安装并配置Anaconda3则配置文件自动会将dlib-19.21/build/lib.linux-x86_64-3.8中的所有文件拷贝到Anaconda3/lib/python3.8/site-packages或对应的env环境中

 

 


版权声明:本文为gaozhenzhao原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。