声明
本文章经验来源于华为鲲鹏项目组,请勿恶意转载,所有权为鲲鹏社区所有。
场景介绍
本人在使用bisheng编译器编译openblas(参考链接: openblas github, kunpeng编译openblas文档)的时候,发现编译出来的so库缺少部分fortran函数(f90_strcmp_klen,90_str_copy_klen,f90_str_cpy1等)。
原因
从错误信息中直接获取的信息是编译出来的so库缺少flang里的几个函数。
诱因是
1.从源码开始编译openblas的时候,采用c和fortran混编的方式
原因的结论是,在编译的so里,含有毕昇Fortran编译器构建出来的函数,而我们的主编译器(clang)中没有链接对应的库,导致符号找不到。
启发文档 https://blog.csdn.net/BiS