Ubuntu20.04下通过Makefile编译依赖MKL、OpenBLAS的项目报错如何解决
Ubuntu 20.04 下编译该项目的配置修改方案
前置操作:补装缺失依赖
你之前的依赖安装步骤缺少GSL数学库的开发包,先执行以下命令安装:
sudo apt install libgsl-dev
步骤1:在Makefile开头定义环境变量
Ubuntu apt源安装的MKL、OpenBLAS路径和项目默认的Intel官方版路径不同,直接在Makefile最顶部添加两行变量定义:
MKLROOT = /usr OPENBLAS_ROOT = /usr
步骤2:修改CFLAGS中的头文件搜索路径
找到CFLAGS配置段里的以下两行:
-I ${OPENBLAS_ROOT}/include \ -I ${MKLROOT}/include \
修改为:
-I ${OPENBLAS_ROOT}/include/openblas \ -I ${MKLROOT}/include/mkl \
步骤3:修改LDFLAGS中的库文件搜索路径
找到LDFLAGS配置段里的以下行:
-Wl,--no-as-needed -L${MKLROOT}/lib/intel64 -lmkl_intel_ilp64 -lmkl_core -lmkl_gnu_thread -lgomp -ldl -lpthread
把其中的${MKLROOT}/lib/intel64替换为apt版MKL的库路径${MKLROOT}/lib/x86_64-linux-gnu,修改后为:
-Wl,--no-as-needed -L${MKLROOT}/lib/x86_64-linux-gnu -lmkl_intel_ilp64 -lmkl_core -lmkl_gnu_thread -lgomp -ldl -lpthread
步骤4:重新编译
先清理之前生成的编译残留文件,再重新执行编译:
make clean make
内容的提问来源于stack exchange,提问作者krcoder
相关产品推荐
相关产品推荐

