cmake FindLAPACK.cmake 和 FindBLAS.cmake 无法链接 lapack 和 blas

Hao*_*Shi 2 makefile cmake shared-libraries blas lapack

我已经在我的笔记本电脑上正确安装了 lapack 和 blas,我可以通过使用链接

-L/usr/lib64 -lblas -llapack
Run Code Online (Sandbox Code Playgroud)

在我的 Makefile 中。

我想使用 cmake 创建一个 Makefile 并链接 lapack 和 blas,我在 /usr/share/cmake/Modules/ 中使用 cmake 提供的 FindLAPACK.cmake 和 FindBLAS.cmake

CMakeLists.txt 是使用:

find_package(BLAS)
find_package(LAPACK)
if(LAPACK_FOUND AND BLAS_FOUND)
   set(lapackblas_libraries "${BLAS_LIBRARIES} ${LAPACK_LIBRARIES}")
endif()

target_link_libraries(code_exe ${lapackblas_libraries})
Run Code Online (Sandbox Code Playgroud)

这code_exe是我链接 lapack 和 blas 库的可执行文件,出现错误

make[2]: *** No rule to make target `/usr/lib64/libblas.so /usr/lib64/liblapack.so', needed by `test/tensortest'.  Stop.
make[1]: *** [test/CMakeFiles/tensortest.dir/all] Error 2
make: *** [all] Error 2
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮助我吗?非常感谢。

小智 6

去掉双引号。如:

set(lapackblas_libraries ${BLAS_LIBRARIES} ${LAPACK_LIBRARIES})
Run Code Online (Sandbox Code Playgroud)