Rocky 9编译动态库时链接器无法找到LAPACK和BLAS求助
解决Rocky 9中编译链接BLAS/LAPACK库的问题
你遇到的链接错误根源是仅安装了运行时库包,缺少编译链接所需的开发包。Rocky 9中,lapack和blas包只提供带版本号的运行时库文件,而编译时链接器需要的无版本号软链(liblapack.so、libblas.so)以及头文件,由对应的开发包提供。
解决步骤
执行以下命令安装BLAS和LAPACK的开发包:
sudo dnf install blas-devel lapack-devel
安装完成后,再次执行whereis liblapack.so和whereis libblas.so,应该能看到类似如下的输出:
liblapack: /usr/lib64/liblapack.so /usr/lib64/liblapack.a libblas: /usr/lib64/libblas.so /usr/lib64/libblas.a
此时重新运行你的编译命令:
gcc -Wall -fPIC -O -g -fopenmp mylib.c -c -o mylib.pic.o gcc -shared -fopenmp mylib.pic.o -L/usr/lib64 -lblas -llapack -lm -o mylib.so
链接器就能正常找到所需的库文件,完成编译。
内容的提问来源于stack exchange,提问作者JackOfAllTrades
相关产品推荐
相关产品推荐

