こんにちは、README.txtにあるように、Armadillo3.0.1を自分の作業ディレクトリ/home/me/package/armadillo3.0.1/にインストールしました。しかし、例を試してみると:
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): `wrapper_dgemv_'への未定義の参照collect2:ldが1つの終了ステータスを返しました
ただし、次のような-larmadilloオプションを追加すると、次のようになります。
g ++ example.cpp -o example -O1 -larmadillo
古いバージョンを呼び出すことで機能します。Mat.t()のような3.0.1の新機能を使用したい場合は、次のエラーも表示されます。
example.cpp:関数内'int main(int、char **)':example.cpp:20:エラー:'struct arma::mat'には't'という名前のメンバーがありません</p>
これは、-larmadilloを追加することにより、/ usr / include /armadillo_bits/から古いバージョンのarmadilloを呼び出すことを示しています。
それについて何か考えはありますか?ありがとう。