Мне нужно использовать libpca в C ++, который зависит от Armadillo , который, в свою очередь, требует OpenBlas и lapack .
У меня возникли проблемы при установке / настройке этих зависимостей.
Я использую Red Hat 4.8.5-16 и хочу написать код и вызвать пакет в /my/dir/program/
. У меня нет привилегии sudo.
Все эти пакеты загружаются и распаковываются в /my/dir/
Вот шаги, которые я выполнил:
1. to install OpenBlas
/my/dir/OpenBLAS-0.2.20$ make
/my/dir/OpenBLAS-0.2.20$ make PREFIX=/my/dir/program/
<Step 1 is successful>
2. to install lapack
/my/dir/lapack-3.8.0$ mv make.inc.example make.inc
/my/dir/lapack-3.8.0$ make
<Step 2 is successful>
3. to install Armadillo
/my/dir/armadillo-8.500.0$ cmake . -DCMAKE_INSTALL_PREFIX:PATH=/my/dir/pgrogram/
/my/dir/armadillo-8.500.0$ make
/my/dir/armadillo-8.500.0$ make install
<Step 3 is successful>
4. to compile the example code
/my/dir/armadillo-8.500.0$ cp examples/example1.cpp /my/dir/program
/my/dir/program$ export LD_LIBRARY_PATH=/opt/intel/mkl/lib/intel64/:../OpenBLAS-0.2.20/:../armadillo-8.500.0/:./lib/:./lib64/:$LD_LIBRARY_PATH ;
/my/dir/program$ g++ example1.cpp -o example1 -O2 -I./include -L./lib -L./lib64 -L../lapack-3.8.0 -L../OpenBLAS-0.2.20 -larmadillo -lopenblas -llapack ;
<There is no warning or error in compiling>
5. to run the example code
/my/dir/program$ export LD_LIBRARY_PATH=/opt/intel/mkl/lib/intel64/:../OpenBLAS-0.2.20/:../armadillo-8.500.0/:./lib/:./lib64/:$LD_LIBRARY_PATH ;
/my/dir/program$ ./example1
Возвращает
. / Example1: ошибка при загрузке общих библиотек: libopenblas.so.0: невозможно
открыть общий объектный файл: нет такого файла или каталога
На самом деле libopenblas.so.0
dll находится в ./lib/
, и я уже добавил путь к DLL.
Так как у меня нет привилегий root, я не могу yum install openblas.x86_64 openblas-devel.x86_64
, как предложено этой записью.
Что мне делать?