Выше приведены библиотеки линейной алгебры. я использую броненосец, который похож на оболочку / фреймворк с ++ для связи с более базовыми библиотеками линейной алгебры в фортране.
Я могу легко скомпилировать example.cpp, используя #include «armadillo», используя опцию gcc -c с флагом -I.
Это генерирует example.o, который теперь должен быть связан с liblapack_LINUX.a и libBLAS_linux.a Статически
Расположение двух:
liblapack_LINUX.a :-/home/nimish/HTMLProjects/WP2/lib/lapack/
libBLAS_linux.a :-/home/nimish/HTMLProjects/WP2/lib/blas
Я выдаю следующую команду:
gcc -o example.o -L../lib/blas -lblas_LINUX -L../lib/lapack -llapack_LINUX
ИЛИ с абсолютными путями
nimish@ubuntu:~$ gcc -o example.o -L/home/nimish/HTMLProjects/WP2/lib/blas -lblas_LINUX -L/home/nimish/HTMLProjects/WP2/lib/lapack -llapack_LINUX
чтобы получить ошибку:
/usr/bin/ld: cannot find -lblas_LINUX
collect2: ld returned 1 exit status
Однако библиотеки существуют —
nimish@ubuntu:~$ find /home/nimish/HTMLProjects/WP2 -name liblapack_LINUX.a
/home/nimish/HTMLProjects/WP2/lib/lapack/liblapack_LINUX.a
nimish@ubuntu:~$ find /home/nimish/HTMLProjects/WP2 -name libblas_LINUX.a
/home/nimish/HTMLProjects/WP2/lib/BLAS/libblas_LINUX.a
Что я делаю неправильно? Я немного новичок в этом бизнесе связывания библиотек, а также GCC.
Задача ещё не решена.
Других решений пока нет …