3

Armadillo ライブラリを含む C++ プログラムをコンパイルします。この問題は、次のコマンドを使用してコマンド ラインから実行できます。

g++ '/arm.cpp' -o example -O1 -larmadillo

しかし、NetBeans プロジェクトのコンパイル オプションに -O1 -larmadillo を追加すると、かなりの量のエラーが発生します。

これらのエラーが発生しました:

"/usr/bin/make" -f nbproject/Makefile-Debug.mk QMAKE= SUBPROJECTS= .build-conf
make[1]: Entering directory `/home/atx/NetBeansProjects/armadillo'
"/usr/bin/make"  -f nbproject/Makefile-Debug.mk dist/Debug/GNU-Linux-x86/armadillo
make[2]: Entering directory `/home/atx/NetBeansProjects/armadillo'
mkdir -p dist/Debug/GNU-Linux-x86
g++ -O3    -o dist/Debug/GNU-Linux-x86/armadillo build/Debug/GNU-Linux-x86/main.o  
build/Debug/GNU-Linux-x86/main.o: In function `gemv<double>':
/usr/include/armadillo_bits/blas_wrapper.hpp:79: undefined reference to `wrapper_dgemv_'
/usr/include/armadillo_bits/blas_wrapper.hpp:79: undefined reference to `wrapper_dgemv_'
/usr/include/armadillo_bits/blas_wrapper.hpp:79: undefined reference to `wrapper_dgemv_'
/usr/include/armadillo_bits/blas_wrapper.hpp:79: undefined reference to `wrapper_dgemv_'
build/Debug/GNU-Linux-x86/main.o: In function `gemm<double>':
/usr/include/armadillo_bits/blas_wrapper.hpp:114: undefined reference to `wrapper_dgemm_'
/usr/include/armadillo_bits/blas_wrapper.hpp:114: undefined reference to `wrapper_dgemm_'
/usr/include/armadillo_bits/blas_wrapper.hpp:114: undefined reference to `wrapper_dgemm_'
/usr/include/armadillo_bits/blas_wrapper.hpp:114: undefined reference to `wrapper_dgemm_'
collect2: ld returned 1 exit status
make[2]: *** [dist/Debug/GNU-Linux-x86/armadillo] Error 1
make[2]: Leaving directory `/home/atx/NetBeansProjects/armadillo'
make[1]: *** [.build-conf] Error 2
make[1]: Leaving directory `/home/atx/NetBeansProjects/armadillo'
make: *** [.build-impl] Error 2


BUILD FAILED (exit value 2, total time: 136ms)
4

2 に答える 2

3

Armadillo のインストールが不完全であるか、2 つのバージョンの Armadillo がインストールされているようです。以前のバージョンの Armadillo (インクルードとランタイム ライブラリの両方) を手動でアンインストールし、新しくダウンロードした Armadillo .tar.gz パッケージを使用して新規インストールを行うことをお勧めします: http://arma.sourceforge.net/ダウンロード.html

または、発生している問題を回避することもできます。「include/armadillo_bits/config.hpp」を編集し、ARMA_USE_WRAPPER の行をコメントアウトします。次に、-larmadillo でリンクする代わりに、-lblas -llapack でリンクします。

于 2012-06-13T04:26:43.650 に答える