2016-12-24 79 views
2

我有以下的錯誤嘗試編譯犰狳:錯誤編譯犰狳

Undefined symbols for architecture x86_64: 
    "_wrapper_ddot_", referenced from: 
     void arma::syrk_vec<true, false, false>::apply<double, arma::Mat<double> >(arma::Mat<double>&, arma::Mat<double> const&, double, double) in exampleArma.o 
     void arma::syrk_vec<true, false, false>::apply<double, arma::Row<double> >(arma::Mat<double>&, arma::Row<double> const&, double, double) in exampleArma.o 
    "_wrapper_dgemm_", referenced from: 
     void arma::gemm<true, false, false, false>::apply_blas_type<double, arma::Mat<double>, arma::Mat<double> >(arma::Mat<double>&, arma::Mat<double> const&, arma::Mat<double> const&, double, double) in exampleArma.o 
     void arma::gemm<true, false, false, false>::apply_blas_type<double, arma::Row<double>, arma::Row<double> >(arma::Mat<double>&, arma::Row<double> const&, arma::Row<double> const&, double, double) in exampleArma.o 
    "_wrapper_dgemv_", referenced from: 
     void arma::glue_times::apply<double, true, false, false, arma::Mat<double>, arma::Mat<double> >(arma::Mat<double>&, arma::Mat<double> const&, arma::Mat<double> const&, double) in exampleArma.o 
     void arma::glue_times::apply<double, true, false, false, arma::Row<double>, arma::Row<double> >(arma::Mat<double>&, arma::Row<double> const&, arma::Row<double> const&, double) in exampleArma.o 
    "_wrapper_dsyrk_", referenced from: 
     void arma::syrk<true, false, false>::apply_blas_type<double, arma::Mat<double> >(arma::Mat<double>&, arma::Mat<double> const&, double, double) in exampleArma.o 
     void arma::syrk<true, false, false>::apply_blas_type<double, arma::Row<double> >(arma::Mat<double>&, arma::Row<double> const&, double, double) in exampleArma.o 

我使用的makefile編譯和我已經嘗試過在這裏發現了不會有好結果的解決方案。到現在爲止,我的項目有不同的類,它們都是用makefile編譯的。其中兩個使用犰狳:第一個不顯示任何問題。相反,這個新班級給我編譯錯誤。我發現這裏的錯誤是使用犰狳的cor函數給出的。當我在第一節中使用rowvec或cx_rowvec時,所有工作都完美無缺。調試我注意到,當我取消與cor行代碼我得到的錯誤。有人能幫我嗎?我安裝了最後一個犰狳版本7.600.2。

現在我試着使用不同的犰狳庫函數:它聽起來像我沒有其中的一些。例如使用下列函數mean(X),var(X),stddev(X)我沒有任何問題,它編譯完美。相反,當我嘗試使用其他功能,如cov(X), cor(X)我得到的錯誤。我想我的圖書館沒有這些功能。所以爲了解決這個問題,我試圖安全地移除舊庫並安裝一個新庫。不幸的是,錯誤成立。我希望這個更新會有所幫助。我不認爲我在makefile中犯了一些錯誤,因爲在我的代碼中使用某些特定函數時編譯不好。 謝謝大家!

+1

可能重複[什麼是未定義的引用/無法解析的外部符號錯誤,以及如何解決它?](http://stackoverflow.com/questions/12573816/what-is-an-undefined-reference-unresolved- external-symbol-error-and-how-do-i-fix) – Danh

+0

請參閱Armadillo [常見問題](http://arma.sourceforge.net/faq.html)頁面的「鏈接」部分。 – mtall

回答

1

我解決了armadillo_bits/config.hpp中的以下幾行註釋: #define ARMA_USE_LAPACK#define ARMA_USE_BLAS。 即使它工作,這也是錯誤的解決方案。在鏈接部分http://arma.sourceforge.net/faq.html#linking中描述了更好的解決方案。

+0

這是錯誤的。在Armadillo [常見問題](http://arma.sourceforge.net/faq.html)頁面的「鏈接」部分描述了一個更好的解決方案。 – mtall