Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Makefile cmake FindLAPACK.cmake和FindBLAS.cmake无法链接lapack和blas_Makefile_Cmake_Shared Libraries_Lapack_Blas - Fatal编程技术网

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

Makefile cmake FindLAPACK.cmake和FindBLAS.cmake无法链接lapack和blas,makefile,cmake,shared-libraries,lapack,blas,Makefile,Cmake,Shared Libraries,Lapack,Blas,我已经在我的笔记本电脑上正确安装了lapack和blas,我可以使用 -L/usr/lib64 -lblas -llapack 在我的Makefile中 我想使用cmake创建一个Makefile并链接lapack和blas,我正在使用cmake在中提供的FindLAPACK.cmake和FindBLAS.cmake /usr/共享/cmake/模块/ CMakeLists.txt用于: find_package(BLAS) find_package(LAPACK) if(LAPACK_FOU

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

-L/usr/lib64 -lblas -llapack
在我的Makefile中

我想使用cmake创建一个Makefile并链接lapack和blas,我正在使用cmake在中提供的FindLAPACK.cmake和FindBLAS.cmake /usr/共享/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})
这里
code\u 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

有人能帮我吗?非常感谢。

删除双引号。例如:

set(lapackblas_libraries ${BLAS_LIBRARIES} ${LAPACK_LIBRARIES})

正如您从错误消息中看到的,libblas和lapack库的路径被连接,这不是您想要的。这是因为在初始化
lapackblas_库
变量时,将它们括在双引号中。正确的方法:
set(lapackblas\u libraries${BLAS\u libraries}${LAPACK\u libraries})
。谢谢@Tsyvarev,这真的很有帮助。