Привет, я установил Armadillo3.0.1 в свой рабочий каталог /home/me/package/armadillo3.0.1/, как сказал README.txt. Но когда я пытаюсь пример:Установка Armadillo
g++ -I /home/me/package/armadillo3.0.1/usr/include/ example.cpp -o example -O1
Он всегда показывает ошибку:
/tmp/ccZAE9pj.o: In function
void arma::gemm<false, false, false, false>::apply_blas_type<double>(arma::Mat<double>&, arma::Mat<double> const&, arma::Mat<double> const&, double, double)': example.cpp:(.text._ZN4arma4gemmILb0ELb0ELb0ELb0EE15apply_blas_typeIdEEvRNS_3MatIT_EERKS5_S8_S4_S4_[void arma::gemm<false, false, false, false>::apply_blas_type<double>(arma::Mat<double>&, arma::Mat<double> const&, arma::Mat<double> const&, double, double)]+0x75e): undefined reference to
wrapper_dgemm_' /tmp/ccZAE9pj.o: In functionvoid arma::glue_times_redirect2_helper<true>::apply<arma::Mat<double>, arma::Mat<double> >(arma::Mat<arma::Mat<double>::elem_type>&, arma::Glue<arma::Mat<double>, arma::Mat<double>, arma::glue_times> const&)': example.cpp:(.text._ZN4arma27glue_times_redirect2_helperILb1EE5applyINS_3MatIdEES4_EEvRNS3_INT_9elem_typeEEERKNS_4GlueIS5_T0_NS_10glue_timesEEE[void arma::glue_times_redirect2_helper<true>::apply<arma::Mat<double>, arma::Mat<double> >(arma::Mat<arma::Mat<double>::elem_type>&, arma::Glue<arma::Mat<double>, arma::Mat<double>, arma::glue_times> const&)]+0xe69): undefined reference to
wrapper_dgemv_' example.cpp:(.text._ZN4arma27glue_times_redirect2_helperILb1EE5applyINS_3MatIdEES4_EEvRNS3_INT_9elem_typeEEERKNS_4GlueIS5_T0_NS_10glue_timesEEE[void arma::glue_times_redirect2_helper::apply, arma::Mat >(arma::Mat::elem_type>&, arma::Glue, arma::Mat, arma::glue_times> const&)]+0x1175): undefined reference to `wrapper_dgemv_' collect2: ld returned 1 exit status
Однако если добавить -larmadillo вариант, как:
g++ example.cpp -o example -O1 -larmadillo
Он работает по телефону старый версия. Если я хочу использовать новые возможности в 3.0.1, как Mat.t(), он также будет показывать ошибку:
example.cpp: In function ‘int main(int, char**)’: example.cpp:20: error: ‘struct arma::mat’ has no member named ‘t’
Это показывает, что при добавлении -larmadillo, он называет старую версию броненосца из/USR/включить/armadillo_bits /.
Любая идея? Благодарю.
Спасибо, похоже работа. Теперь он не распечатывает тайные ошибки, но только жалобы не могут найти libmkl.so. – zhh210
Вам, вероятно, нужны похожие -L и -l для libmkl. – emsr