私は現在、Ubuntuのコード::ブロック上にあり、線形代数をしようとするといくつかの問題に遭遇します。コンパイラ設定]> [検索ディレクトリ>私が持っているコンパイラ "は/ usr /含める"SOVED:ArmadilloドットプロダクトC++
とコンパイラ設定の下>検索ディレクトリ>私が持っているリンカー "/ユーザー/ libが"
私liblapack-devの下
、 libblas-dev、libboost-dev、libarmadillo-devはapt-get経由でインストールされています
私はこのコードのどの部分がエラーを起こすかについてコメントしています。コードの難しい部分がなくても私のコードはうまく動くので、私はうまくインストールされたarmadilloがあると思いますか?なぜ私はすべての機能にアクセスできませんか?
#include <iostream>
#include <armadillo>
using namespace arma;
using namespace std;
int main()
{
mat A;
A<<1<<2<<endr<<3<<4;
cout<<A;
vec e=A.col(0);
vec r=A.col(1);
cout<<endl<<e<<endl<<r<<endl;//works perfectly up to here
//if only there was not more of these codes
cout<<e*r<<endl;//doesnt work from here anymore
float y=dot(A,A);//from here on i get the error message:
cout<<y<<endl;//'wrapper_ddot_' is not defined
double z=as_scalar(e*r);//and wrapper_blas.hpp file opens
double t=dot(e,r);
cout<<z<<endl;//and points me to line 185
return 0;//with an error
}
iveただウルの解決策を試みましたが、それでも私に同じエラーを与えている仕事はまだありません:/。他のすべてをコメントアウトする場合でも人々はこれらの機能を転置なしで使用していますが、カップルのチュートリアルで見られるようなものです。おかげで – maxsieg
実際にあなたはリンカにどのコマンドを渡しますか?私はちょうどいくつかの他の人が "g ++ -O2 -o armadillo_example armadillo_example.cpp -larmadillo"をリンカに使用するのを見ましたが、ディレクトリintotをプロジェクトのファイルに変更しますか? – maxsieg
code :: blocksを使用する場合は、 'リンカー設定 - >その他のリンカーオプション'の下に '-larmadillo'を追加するだけです。あなたが言及したコマンドラインの例もうまくいくはずです。 –