Для кода ниже: test.cpp
когда я компилирую с
g++ -std=c++11 -I ~/armadillo-openblas/include/ -L ~/armadillo-openblas/lib/ test.cpp -o test -O2 -larmadillo
Я получил ошибку:
. / Test: ошибка при загрузке общих библиотек: libarmadillo.so.9:
невозможно открыть общий объектный файл: нет такого файла или каталога
Но я уверен, что libarmadillo.so.9 находится в ~ / armadillo-openblas / lib /.
Я тоже пробовал с этим:
g++ -std=c++11 -I ~/armadillo-openblas/include/ -L ~/armadillo-openblas/lib/ test.cpp -o test -DARMA_DONT_USE_WRAPPER -lopenblas -llapack
Это работает. Я знаю, что при добавлении ARMA_DONT_USE_WRAPPER
мы можем скомпилировать его таким образом. но как не работает -larmadillo
, если без ARMA_DONT_USE_WRAPPER
?
Кстати, что значит -O2
?
//test.cpp
#include <iostream>
#include <armadillo>
int main(){
arma::arma_rng::set_seed_random();
arma::Mat<double> A = arma::randu(4,4);
std::cout << A << std::endl;
return -1;
}