я правильно установлен LAPACK и Блас на моем ноутбуке, и я могу связать с помощьюCMake FindLAPACK.cmake и FindBLAS.cmake не могут связать LAPACK и Блас
-L/usr/lib64 -lblas -llapack
в моем Makefile.
Я хочу использовать CMake, чтобы создать Makefile и ссылку LAPACK и Блас, я использую FindLAPACK.cmake и FindBLAS.cmake предоставленную CMake в /USR/доли/CMake/Модули/
The 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_exe
мой исполняемый файл, чтобы связать LaPack и Блас библиотеки, я получаю сообщение об ошибке
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
Может ли кто-нибудь помочь мне в этом? Большое спасибо.
Как вы можете видеть из сообщения об ошибке, пути к библиотекам * libblas * и * lapack * ** объединены **, что не то, что вы хотите. Это связано с тем, что вы вставляете их в двойные кавычки при инициализации переменной 'lapackblas_libraries'. Правильный способ: 'set (lapackblas_libraries $ {BLAS_LIBRARIES} $ {LAPACK_LIBRARIES})'. – Tsyvarev
Спасибо @ Цыварев, это действительно помогает. –