SciRuby / sciruby

Tools for scientific computation in Ruby
http://gems.sciruby.com
Other
994 stars 80 forks source link

failed gem install sciruby #45

Closed AbhimanyuAryan closed 8 years ago

AbhimanyuAryan commented 8 years ago

I have no idea why built failed. Could anyone please help me what failed and how to fix this issue?

➜  ~  gem install sciruby-full
Building native extensions.  This could take a while...
ERROR:  Error installing sciruby-full:
    ERROR: Failed to build gem native extension.

    /home/cooldudeabhi/.rvm/rubies/ruby-2.2.3/bin/ruby -r ./siteconf20151217-4634-15xzki5.rb extconf.rb
using C++ standard... c++11
g++ reports version... 5.2.1-22ubuntu2)
checking for main() in -lclapack... no
checking for main() in -llapack... no
checking for main() in -lcblas... no
checking for main() in -latlas... no
checking for atlas/cblas.h... no
checking for cblas.h... no
checking for clapack.h... no
checking for clapack_dgetrf() in atlas/clapack.h... no
checking for clapack_dgetri() in atlas/clapack.h... no
checking for dgesvd_() in clapack.h... no
checking for cblas_dgemm() in cblas.h... no
creating nmatrix_config.h
creating Makefile

make "DESTDIR=" clean

make "DESTDIR="
compiling nmatrix.cpp
In file included from nmatrix.cpp:59:0:
math/math.h:128:29: error: use of enum ‘CBLAS_ORDER’ without previous declaration
 inline void syrk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE Trans, const int N,
                             ^
math/math.h:128:59: error: use of enum ‘CBLAS_UPLO’ without previous declaration
 inline void syrk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE Trans, const int N,
                                                           ^
math/math.h:128:87: error: use of enum ‘CBLAS_TRANSPOSE’ without previous declaration
 inline void syrk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE Trans, const int N,
                                                                                       ^
math/math.h:134:29: error: use of enum ‘CBLAS_ORDER’ without previous declaration
 inline void herk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE Trans, const int N,
                             ^
math/math.h:134:59: error: use of enum ‘CBLAS_UPLO’ without previous declaration
 inline void herk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE Trans, const int N,
                                                           ^
math/math.h:134:87: error: use of enum ‘CBLAS_TRANSPOSE’ without previous declaration
 inline void herk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE Trans, const int N,
                                                                                       ^
math/math.h:140:29: error: use of enum ‘CBLAS_ORDER’ without previous declaration
 inline void syrk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE Trans, const int N,
                             ^
math/math.h:140:59: error: use of enum ‘CBLAS_UPLO’ without previous declaration
 inline void syrk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE Trans, const int N,
                                                           ^
math/math.h:140:87: error: use of enum ‘CBLAS_TRANSPOSE’ without previous declaration
 inline void syrk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE Trans, const int N,
                                                                                       ^
math/math.h: In function ‘void nm::math::syrk(int, int, int, int, int, const DType*, const DType*, int, const DType*, DType*, int) [with DType = float]’:
math/math.h:142:70: error: ‘cblas_ssyrk’ was not declared in this scope
   cblas_ssyrk(Order, Uplo, Trans, N, K, *alpha, A, lda, *beta, C, ldc);
                                                                      ^
math/math.h: At global scope:
math/math.h:146:29: error: use of enum ‘CBLAS_ORDER’ without previous declaration
 inline void syrk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE Trans, const int N,
                             ^
math/math.h:146:59: error: use of enum ‘CBLAS_UPLO’ without previous declaration
 inline void syrk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE Trans, const int N,
                                                           ^
math/math.h:146:87: error: use of enum ‘CBLAS_TRANSPOSE’ without previous declaration
 inline void syrk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE Trans, const int N,
                                                                                       ^
math/math.h: In function ‘void nm::math::syrk(int, int, int, int, int, const DType*, const DType*, int, const DType*, DType*, int) [with DType = double]’:
math/math.h:148:70: error: ‘cblas_dsyrk’ was not declared in this scope
   cblas_dsyrk(Order, Uplo, Trans, N, K, *alpha, A, lda, *beta, C, ldc);
                                                                      ^
math/math.h: At global scope:
math/math.h:152:29: error: use of enum ‘CBLAS_ORDER’ without previous declaration
 inline void syrk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE Trans, const int N,
                             ^
math/math.h:152:59: error: use of enum ‘CBLAS_UPLO’ without previous declaration
 inline void syrk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE Trans, const int N,
                                                           ^
math/math.h:152:87: error: use of enum ‘CBLAS_TRANSPOSE’ without previous declaration
 inline void syrk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE Trans, const int N,
                                                                                       ^
math/math.h: In function ‘void nm::math::syrk(int, int, int, int, int, const DType*, const DType*, int, const DType*, DType*, int) [with DType = nm::Complex<float>]’:
math/math.h:154:68: error: ‘cblas_csyrk’ was not declared in this scope
   cblas_csyrk(Order, Uplo, Trans, N, K, alpha, A, lda, beta, C, ldc);
                                                                    ^
math/math.h: At global scope:
math/math.h:158:29: error: use of enum ‘CBLAS_ORDER’ without previous declaration
 inline void syrk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE Trans, const int N,
                             ^
math/math.h:158:59: error: use of enum ‘CBLAS_UPLO’ without previous declaration
 inline void syrk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE Trans, const int N,
                                                           ^
math/math.h:158:87: error: use of enum ‘CBLAS_TRANSPOSE’ without previous declaration
 inline void syrk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE Trans, const int N,
                                                                                       ^
math/math.h: In function ‘void nm::math::syrk(int, int, int, int, int, const DType*, const DType*, int, const DType*, DType*, int) [with DType = nm::Complex<double>]’:
math/math.h:160:68: error: ‘cblas_zsyrk’ was not declared in this scope
   cblas_zsyrk(Order, Uplo, Trans, N, K, alpha, A, lda, beta, C, ldc);
                                                                    ^
math/math.h: At global scope:
math/math.h:165:29: error: use of enum ‘CBLAS_ORDER’ without previous declaration
 inline void herk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE Trans, const int N,
                             ^
math/math.h:165:59: error: use of enum ‘CBLAS_UPLO’ without previous declaration
 inline void herk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE Trans, const int N,
                                                           ^
math/math.h:165:87: error: use of enum ‘CBLAS_TRANSPOSE’ without previous declaration
 inline void herk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE Trans, const int N,
                                                                                       ^
math/math.h: In function ‘void nm::math::herk(int, int, int, int, int, const DType*, const DType*, int, const DType*, DType*, int) [with DType = nm::Complex<float>]’:
math/math.h:167:74: error: ‘cblas_cherk’ was not declared in this scope
   cblas_cherk(Order, Uplo, Trans, N, K, alpha->r, A, lda, beta->r, C, ldc);
                                                                          ^
math/math.h: At global scope:
math/math.h:171:29: error: use of enum ‘CBLAS_ORDER’ without previous declaration
 inline void herk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE Trans, const int N,
                             ^
math/math.h:171:59: error: use of enum ‘CBLAS_UPLO’ without previous declaration
 inline void herk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE Trans, const int N,
                                                           ^
math/math.h:171:87: error: use of enum ‘CBLAS_TRANSPOSE’ without previous declaration
 inline void herk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE Trans, const int N,
                                                                                       ^
math/math.h: In function ‘void nm::math::herk(int, int, int, int, int, const DType*, const DType*, int, const DType*, DType*, int) [with DType = nm::Complex<double>]’:
math/math.h:173:74: error: ‘cblas_zherk’ was not declared in this scope
   cblas_zherk(Order, Uplo, Trans, N, K, alpha->r, A, lda, beta->r, C, ldc);
                                                                          ^
math/math.h: At global scope:
math/math.h:178:29: error: use of enum ‘CBLAS_ORDER’ without previous declaration
 inline void trmm(const enum CBLAS_ORDER order, const enum CBLAS_SIDE side, const enum CBLAS_UPLO uplo,
                             ^
math/math.h:178:59: error: use of enum ‘CBLAS_SIDE’ without previous declaration
 inline void trmm(const enum CBLAS_ORDER order, const enum CBLAS_SIDE side, const enum CBLAS_UPLO uplo,
                                                           ^
math/math.h:178:87: error: use of enum ‘CBLAS_UPLO’ without previous declaration
 inline void trmm(const enum CBLAS_ORDER order, const enum CBLAS_SIDE side, const enum CBLAS_UPLO uplo,
                                                                                       ^
math/math.h:179:29: error: use of enum ‘CBLAS_TRANSPOSE’ without previous declaration
                  const enum CBLAS_TRANSPOSE ta, const enum CBLAS_DIAG diag, const int m, const int n, const DType* alpha,
                             ^
math/math.h:179:60: error: use of enum ‘CBLAS_DIAG’ without previous declaration
                  const enum CBLAS_TRANSPOSE ta, const enum CBLAS_DIAG diag, const int m, const int n, const DType* alpha,
                                                            ^
math/math.h:185:29: error: use of enum ‘CBLAS_ORDER’ without previous declaration
 inline void trmm(const enum CBLAS_ORDER order, const enum CBLAS_SIDE side, const enum CBLAS_UPLO uplo,
                             ^
math/math.h:185:59: error: use of enum ‘CBLAS_SIDE’ without previous declaration
 inline void trmm(const enum CBLAS_ORDER order, const enum CBLAS_SIDE side, const enum CBLAS_UPLO uplo,
                                                           ^
math/math.h:185:87: error: use of enum ‘CBLAS_UPLO’ without previous declaration
 inline void trmm(const enum CBLAS_ORDER order, const enum CBLAS_SIDE side, const enum CBLAS_UPLO uplo,
                                                                                       ^
math/math.h:186:29: error: use of enum ‘CBLAS_TRANSPOSE’ without previous declaration
                  const enum CBLAS_TRANSPOSE ta, const enum CBLAS_DIAG diag, const int m, const int n, const float* alpha,
                             ^
math/math.h:186:60: error: use of enum ‘CBLAS_DIAG’ without previous declaration
                  const enum CBLAS_TRANSPOSE ta, const enum CBLAS_DIAG diag, const int m, const int n, const float* alpha,
                                                            ^
math/math.h: In function ‘void nm::math::trmm(int, int, int, int, int, int, int, const DType*, const DType*, int, DType*, int) [with DType = float]’:
math/math.h:188:72: error: ‘cblas_strmm’ was not declared in this scope
   cblas_strmm(order, side, uplo, ta, diag, m, n, *alpha, A, lda, B, ldb);
                                                                        ^
math/math.h: At global scope:
math/math.h:192:29: error: use of enum ‘CBLAS_ORDER’ without previous declaration
 inline void trmm(const enum CBLAS_ORDER order, const enum CBLAS_SIDE side, const enum CBLAS_UPLO uplo,
                             ^
math/math.h:192:59: error: use of enum ‘CBLAS_SIDE’ without previous declaration
 inline void trmm(const enum CBLAS_ORDER order, const enum CBLAS_SIDE side, const enum CBLAS_UPLO uplo,
                                                           ^
math/math.h:192:87: error: use of enum ‘CBLAS_UPLO’ without previous declaration
 inline void trmm(const enum CBLAS_ORDER order, const enum CBLAS_SIDE side, const enum CBLAS_UPLO uplo,
                                                                                       ^
math/math.h:193:29: error: use of enum ‘CBLAS_TRANSPOSE’ without previous declaration
                  const enum CBLAS_TRANSPOSE ta, const enum CBLAS_DIAG diag, const int m, const int n, const double* alpha,
                             ^
math/math.h:193:60: error: use of enum ‘CBLAS_DIAG’ without previous declaration
                  const enum CBLAS_TRANSPOSE ta, const enum CBLAS_DIAG diag, const int m, const int n, const double* alpha,
                                                            ^
math/math.h: In function ‘void nm::math::trmm(int, int, int, int, int, int, int, const DType*, const DType*, int, DType*, int) [with DType = double]’:
math/math.h:195:72: error: ‘cblas_dtrmm’ was not declared in this scope
   cblas_dtrmm(order, side, uplo, ta, diag, m, n, *alpha, A, lda, B, ldb);
                                                                        ^
math/math.h: At global scope:
math/math.h:199:29: error: use of enum ‘CBLAS_ORDER’ without previous declaration
 inline void trmm(const enum CBLAS_ORDER order, const enum CBLAS_SIDE side, const enum CBLAS_UPLO uplo,
                             ^
math/math.h:199:59: error: use of enum ‘CBLAS_SIDE’ without previous declaration
 inline void trmm(const enum CBLAS_ORDER order, const enum CBLAS_SIDE side, const enum CBLAS_UPLO uplo,
                                                           ^
math/math.h:199:87: error: use of enum ‘CBLAS_UPLO’ without previous declaration
 inline void trmm(const enum CBLAS_ORDER order, const enum CBLAS_SIDE side, const enum CBLAS_UPLO uplo,
                                                                                       ^
math/math.h:200:29: error: use of enum ‘CBLAS_TRANSPOSE’ without previous declaration
                  const enum CBLAS_TRANSPOSE ta, const enum CBLAS_DIAG diag, const int m, const int n, const Complex64* alpha,
                             ^
math/math.h:200:60: error: use of enum ‘CBLAS_DIAG’ without previous declaration
                  const enum CBLAS_TRANSPOSE ta, const enum CBLAS_DIAG diag, const int m, const int n, const Complex64* alpha,
                                                            ^
math/math.h: In function ‘void nm::math::trmm(int, int, int, int, int, int, int, const DType*, const DType*, int, DType*, int) [with DType = nm::Complex<float>]’:
math/math.h:202:71: error: ‘cblas_ctrmm’ was not declared in this scope
   cblas_ctrmm(order, side, uplo, ta, diag, m, n, alpha, A, lda, B, ldb);
                                                                       ^
math/math.h: At global scope:
math/math.h:206:29: error: use of enum ‘CBLAS_ORDER’ without previous declaration
 inline void trmm(const enum CBLAS_ORDER order, const enum CBLAS_SIDE side, const enum CBLAS_UPLO uplo,
                             ^
math/math.h:206:59: error: use of enum ‘CBLAS_SIDE’ without previous declaration
 inline void trmm(const enum CBLAS_ORDER order, const enum CBLAS_SIDE side, const enum CBLAS_UPLO uplo,
                                                           ^
math/math.h:206:87: error: use of enum ‘CBLAS_UPLO’ without previous declaration
 inline void trmm(const enum CBLAS_ORDER order, const enum CBLAS_SIDE side, const enum CBLAS_UPLO uplo,
                                                                                       ^
math/math.h:207:29: error: use of enum ‘CBLAS_TRANSPOSE’ without previous declaration
                  const enum CBLAS_TRANSPOSE ta, const enum CBLAS_DIAG diag, const int m, const int n, const Complex128* alpha,
                             ^
math/math.h:207:60: error: use of enum ‘CBLAS_DIAG’ without previous declaration
                  const enum CBLAS_TRANSPOSE ta, const enum CBLAS_DIAG diag, const int m, const int n, const Complex128* alpha,
                                                            ^
math/math.h: In function ‘void nm::math::trmm(int, int, int, int, int, int, int, const DType*, const DType*, int, DType*, int) [with DType = nm::Complex<double>]’:
math/math.h:209:71: error: ‘cblas_ztrmm’ was not declared in this scope
   cblas_ztrmm(order, side, uplo, ta, diag, m, n, alpha, A, lda, B, ldb);
                                                                       ^
math/math.h: At global scope:
math/math.h:540:29: error: use of enum ‘CBLAS_ORDER’ without previous declaration
 inline int potrf(const enum CBLAS_ORDER order, const enum CBLAS_UPLO uplo, const int N, DType* A, const int lda) {
                             ^
math/math.h:540:59: error: use of enum ‘CBLAS_UPLO’ without previous declaration
 inline int potrf(const enum CBLAS_ORDER order, const enum CBLAS_UPLO uplo, const int N, DType* A, const int lda) {
                                                           ^
math/math.h:881:30: error: use of enum ‘CBLAS_ORDER’ without previous declaration
 inline void lauum(const enum CBLAS_ORDER order, const enum CBLAS_UPLO uplo, const int N, DType* A, const int lda) {
                              ^
math/math.h:881:60: error: use of enum ‘CBLAS_UPLO’ without previous declaration
 inline void lauum(const enum CBLAS_ORDER order, const enum CBLAS_UPLO uplo, const int N, DType* A, const int lda) {
                                                            ^
math/math.h: In function ‘void nm::math::lauum(int, int, int, DType*, int)’:
math/math.h:896:17: error: ‘CblasUpper’ was not declared in this scope
     if (uplo == CblasUpper) {
                 ^
math/math.h:897:20: error: ‘CblasRowMajor’ was not declared in this scope
       if (order == CblasRowMajor) {
                    ^
math/math.h:905:20: error: ‘CblasRowMajor’ was not declared in this scope
       if (order == CblasRowMajor) {
                    ^
math/math.h:919:37: error: ‘CblasLower’ was not declared in this scope
                             uplo == CblasLower ? CblasConjTrans : CblasNoTrans,
                                     ^
math/math.h:919:50: error: ‘CblasConjTrans’ was not declared in this scope
                             uplo == CblasLower ? CblasConjTrans : CblasNoTrans,
                                                  ^
math/math.h:919:67: error: ‘CblasNoTrans’ was not declared in this scope
                             uplo == CblasLower ? CblasConjTrans : CblasNoTrans,
                                                                   ^
math/math.h:922:36: error: ‘CblasLeft’ was not declared in this scope
       nm::math::trmm<DType>(order, CblasLeft, uplo, CblasConjTrans, CblasNonUnit, Nright, Nleft, &ONE, U1, lda, G, lda);
                                    ^
math/math.h:922:69: error: ‘CblasNonUnit’ was not declared in this scope
       nm::math::trmm<DType>(order, CblasLeft, uplo, CblasConjTrans, CblasNonUnit, Nright, Nleft, &ONE, U1, lda, G, lda);
                                                                     ^
math/math.h:925:37: error: ‘CblasLower’ was not declared in this scope
                             uplo == CblasLower ? CblasTrans : CblasNoTrans,
                                     ^
math/math.h:925:50: error: ‘CblasTrans’ was not declared in this scope
                             uplo == CblasLower ? CblasTrans : CblasNoTrans,
                                                  ^
math/math.h:925:63: error: ‘CblasNoTrans’ was not declared in this scope
                             uplo == CblasLower ? CblasTrans : CblasNoTrans,
                                                               ^
math/math.h:928:36: error: ‘CblasLeft’ was not declared in this scope
       nm::math::trmm<DType>(order, CblasLeft, uplo, CblasTrans, CblasNonUnit, Nright, Nleft, &ONE, U1, lda, G, lda);
                                    ^
math/math.h:928:65: error: ‘CblasNonUnit’ was not declared in this scope
       nm::math::trmm<DType>(order, CblasLeft, uplo, CblasTrans, CblasNonUnit, Nright, Nleft, &ONE, U1, lda, G, lda);
                                                                 ^
math/math.h: At global scope:
math/math.h:969:37: error: use of enum ‘CBLAS_ORDER’ without previous declaration
 inline int clapack_lauum(const enum CBLAS_ORDER order, const enum CBLAS_UPLO uplo, const int n, void* a, const int lda) {
                                     ^
math/math.h:969:67: error: use of enum ‘CBLAS_UPLO’ without previous declaration
 inline int clapack_lauum(const enum CBLAS_ORDER order, const enum CBLAS_UPLO uplo, const int n, void* a, const int lda) {
                                                                   ^
math/math.h: In function ‘int nm::math::clapack_lauum(int, int, int, void*, int)’:
math/math.h:973:15: error: ‘CblasUpper’ was not declared in this scope
   if (uplo == CblasUpper) lauum<is_complex, DType>(order, uplo, n, reinterpret_cast<DType*>(a), lda);
               ^
math/math.h: At global scope:
math/math.h:1016:37: error: use of enum ‘CBLAS_ORDER’ without previous declaration
 inline int clapack_potrf(const enum CBLAS_ORDER order, const enum CBLAS_UPLO uplo, const int n, void* a, const int lda) {
                                     ^
math/math.h:1016:67: error: use of enum ‘CBLAS_UPLO’ without previous declaration
 inline int clapack_potrf(const enum CBLAS_ORDER order, const enum CBLAS_UPLO uplo, const int n, void* a, const int lda) {
                                                                   ^
math/math.h:1023:29: error: use of enum ‘CBLAS_ORDER’ without previous declaration
 inline int potri(const enum CBLAS_ORDER order, const enum CBLAS_UPLO uplo, const int n, DType* a, const int lda) {
                             ^
math/math.h:1023:59: error: use of enum ‘CBLAS_UPLO’ without previous declaration
 inline int potri(const enum CBLAS_ORDER order, const enum CBLAS_UPLO uplo, const int n, DType* a, const int lda) {
                                                           ^
math/math.h:1060:37: error: use of enum ‘CBLAS_ORDER’ without previous declaration
 inline int clapack_potri(const enum CBLAS_ORDER order, const enum CBLAS_UPLO uplo, const int n, void* a, const int lda) {
                                     ^
math/math.h:1060:67: error: use of enum ‘CBLAS_UPLO’ without previous declaration
 inline int clapack_potri(const enum CBLAS_ORDER order, const enum CBLAS_UPLO uplo, const int n, void* a, const int lda) {
                                                                   ^
In file included from nmatrix.cpp:297:0:
ruby_nmatrix.c: In function ‘VALUE nm_reshape_bang(VALUE, VALUE)’:
ruby_nmatrix.c:1069:11: warning: unused variable ‘elem’ [-Wunused-variable]
     void* elem = s->elements;
           ^
Makefile:241: recipe for target 'nmatrix.o' failed
make: *** [nmatrix.o] Error 1

make failed, exit code 2

Gem files will remain installed in /home/cooldudeabhi/.rvm/gems/ruby-2.2.3/gems/nmatrix-0.1.0 for inspection.
Results logged to /home/cooldudeabhi/.rvm/gems/ruby-2.2.3/extensions/x86_64-linux/2.2.0/nmatrix-0.1.0/gem_make.out
➜  ~          
translunar commented 8 years ago

It's failing on your installation of nmatrix — probably the lapacke and BLAS extensions. Have you installed lapacke and ATLAS?

AbhimanyuAryan commented 8 years ago

@mohawkjohn no I didn't have those

I installed them with the following commands:

sudo apt-get install libblas-dev checkinstall
sudo apt-get install libblas-doc checkinstall
sudo apt-get install liblapacke-dev checkinstall
sudo apt-get install liblapack-doc checkinstall

but still I get errors(little less this time):

➜  lapack-3.6.0  gem install sciruby-full
Building native extensions.  This could take a while...
ERROR:  Error installing sciruby-full:
    ERROR: Failed to build gem native extension.

    /home/cooldudeabhi/.rvm/rubies/ruby-2.2.3/bin/ruby -r ./siteconf20151218-22442-zsgtfs.rb extconf.rb
using C++ standard... c++11
g++ reports version... 5.2.1-22ubuntu2)
checking for main() in -lclapack... no
checking for main() in -llapack... no
checking for main() in -lcblas... no
checking for main() in -latlas... no
checking for atlas/cblas.h... no
checking for cblas.h... yes
checking for clapack.h... no
checking for clapack_dgetrf() in atlas/clapack.h... no
checking for clapack_dgetri() in atlas/clapack.h... no
checking for dgesvd_() in clapack.h... no
checking for cblas_dgemm() in cblas.h... no
creating nmatrix_config.h
creating Makefile

make "DESTDIR=" clean

make "DESTDIR="
compiling nmatrix.cpp
In file included from nmatrix.cpp:297:0:
ruby_nmatrix.c: In function ‘VALUE nm_reshape_bang(VALUE, VALUE)’:
ruby_nmatrix.c:1069:11: warning: unused variable ‘elem’ [-Wunused-variable]
     void* elem = s->elements;
           ^
ruby_nmatrix.c: In function ‘VALUE nm_complex_conjugate(VALUE)’:
ruby_nmatrix.c:1047:35: warning: ‘copy’ is used uninitialized in this function [-Wuninitialized]
   return nm_complex_conjugate_bang(nm_init_copy(copy,self));
                                   ^
ruby_nmatrix.c: In function ‘VALUE nm_init_new_version(int, VALUE*, VALUE)’:
ruby_nmatrix.c:1266:60: warning: ‘init’ may be used uninitialized in this function [-Wmaybe-uninitialized]
     nm_unregister_values(reinterpret_cast<VALUE*>(init), 1);
                                                            ^
compiling ruby_constants.cpp
compiling data/data.cpp
compiling util/io.cpp
compiling math.cpp
In file included from math.cpp:141:0:
math/rot.h: In function ‘void nm::math::rot(int, DType*, int, DType*, int, CSDType, CSDType) [with DType = nm::Complex<float>; CSDType = float]’:
math/rot.h:123:40: error: ‘cblas_csrot’ was not declared in this scope
   cblas_csrot(N, X, incX, Y, incY, c, s);
                                        ^
math/rot.h: In function ‘void nm::math::rot(int, DType*, int, DType*, int, CSDType, CSDType) [with DType = nm::Complex<double>; CSDType = double]’:
math/rot.h:128:40: error: ‘cblas_zdrot’ was not declared in this scope
   cblas_zdrot(N, X, incX, Y, incY, c, s);
                                        ^
In file included from math.cpp:142:0:
math/rotg.h: In function ‘void nm::math::rotg(DType*, DType*, DType*, DType*) [with DType = nm::Complex<float>]’:
math/rotg.h:99:125: error: ‘cblas_crotg’ was not declared in this scope
   cblas_crotg(reinterpret_cast<void*>(a), reinterpret_cast<void*>(b), reinterpret_cast<void*>(c), reinterpret_cast<void*>(s));
                                                                                                                             ^
math/rotg.h: In function ‘void nm::math::rotg(DType*, DType*, DType*, DType*) [with DType = nm::Complex<double>]’:
math/rotg.h:104:125: error: ‘cblas_zrotg’ was not declared in this scope
   cblas_zrotg(reinterpret_cast<void*>(a), reinterpret_cast<void*>(b), reinterpret_cast<void*>(c), reinterpret_cast<void*>(s));
                                                                                                                             ^
Makefile:241: recipe for target 'math.o' failed
make: *** [math.o] Error 1

make failed, exit code 2

Gem files will remain installed in /home/cooldudeabhi/.rvm/gems/ruby-2.2.3/gems/nmatrix-0.1.0 for inspection.
Results logged to /home/cooldudeabhi/.rvm/gems/ruby-2.2.3/extensions/x86_64-linux/2.2.0/nmatrix-0.1.0/gem_make.out
translunar commented 8 years ago

You can still use NMatrix without these. But I'm not sure what the status of sciruby-full without them is. If you're trying to get NMatrix working, you should go look at the NMatrix install instructions.

L226 commented 8 years ago

Getting the exact same error (Ubuntu 14.04.3). I need to use sciruby-full.

 gem install sciruby-full
Building native extensions.  This could take a while...
ERROR:  Error installing sciruby-full:
    ERROR: Failed to build gem native extension.

    /home/luke/.rvm/rubies/ruby-2.1.3/bin/ruby -r ./siteconf20160102-5459-zu45uc.rb extconf.rb
using C++ standard... c++11
g++ reports version... 4.8.4-2ubuntu1~14.04)
checking for main() in -lclapack... no
checking for main() in -llapack... no
checking for main() in -lcblas... no
checking for main() in -latlas... no
checking for atlas/cblas.h... no
checking for cblas.h... yes
checking for clapack.h... no
checking for clapack_dgetrf() in atlas/clapack.h... no
checking for clapack_dgetri() in atlas/clapack.h... no
checking for dgesvd_() in clapack.h... no
checking for cblas_dgemm() in cblas.h... no
creating nmatrix_config.h
creating Makefile

make "DESTDIR=" clean

make "DESTDIR="
compiling nmatrix.cpp
In file included from nmatrix.cpp:297:0:
ruby_nmatrix.c: In function ‘VALUE nm_reshape_bang(VALUE, VALUE)’:
ruby_nmatrix.c:1069:11: warning: unused variable ‘elem’ [-Wunused-variable]
     void* elem = s->elements;
           ^
ruby_nmatrix.c: In function ‘VALUE nm_complex_conjugate(VALUE)’:
ruby_nmatrix.c:1047:59: warning: ‘copy’ is used uninitialized in this function [-Wuninitialized]
   return nm_complex_conjugate_bang(nm_init_copy(copy,self));
                                                           ^
ruby_nmatrix.c: In function ‘VALUE nm_init_new_version(int, VALUE*, VALUE)’:
ruby_nmatrix.c:1266:60: warning: ‘init’ may be used uninitialized in this function [-Wmaybe-uninitialized]
     nm_unregister_values(reinterpret_cast<VALUE*>(init), 1);
                                                            ^
compiling ruby_constants.cpp
compiling data/data.cpp
compiling util/io.cpp
compiling math.cpp
In file included from math.cpp:141:0:
math/rot.h: In function ‘void nm::math::rot(int, DType*, int, DType*, int, CSDType, CSDType) [with DType = nm::Complex<float>; CSDType = float]’:
math/rot.h:123:40: error: ‘cblas_csrot’ was not declared in this scope
   cblas_csrot(N, X, incX, Y, incY, c, s);
                                        ^
math/rot.h: In function ‘void nm::math::rot(int, DType*, int, DType*, int, CSDType, CSDType) [with DType = nm::Complex<double>; CSDType = double]’:
math/rot.h:128:40: error: ‘cblas_zdrot’ was not declared in this scope
   cblas_zdrot(N, X, incX, Y, incY, c, s);
                                        ^
In file included from math.cpp:142:0:
math/rotg.h: In function ‘void nm::math::rotg(DType*, DType*, DType*, DType*) [with DType = nm::Complex<float>]’:
math/rotg.h:99:125: error: ‘cblas_crotg’ was not declared in this scope
   cblas_crotg(reinterpret_cast<void*>(a), reinterpret_cast<void*>(b), reinterpret_cast<void*>(c), reinterpret_cast<void*>(s));
                                                                                                                             ^
math/rotg.h: In function ‘void nm::math::rotg(DType*, DType*, DType*, DType*) [with DType = nm::Complex<double>]’:
math/rotg.h:104:125: error: ‘cblas_zrotg’ was not declared in this scope
   cblas_zrotg(reinterpret_cast<void*>(a), reinterpret_cast<void*>(b), reinterpret_cast<void*>(c), reinterpret_cast<void*>(s));
                                                                                                                             ^
make: *** [math.o] Error 1

make failed, exit code 2

Gem files will remain installed in /home/luke/.rvm/gems/ruby-2.1.3/gems/nmatrix-0.1.0 for inspection.
Results logged to /home/luke/.rvm/gems/ruby-2.1.3/extensions/x86_64-linux/2.1.0/nmatrix-0.1.0/gem_make.out
L226 commented 8 years ago

Following This guide fixed my install issue.

minad commented 8 years ago

please follow the debian instructions in

https://github.com/SciRuby/sciruby-notebooks/blob/master/Dockerfile

This should give you the full environment. Please tell us if it works.

kozo2 commented 8 years ago

hi @minad

gem install sciruby-full also fails in sciruby-notebooks docker build. Please see

https://hub.docker.com/r/kozo2/sciruby-notebooks/builds/bpyukznckubbidakejrimgd/

ianabc commented 8 years ago

I see the same failure against debian-jessie (https://github.com/SciRuby/sciruby-notebooks/blob/master/Dockerfile). The build fails with

Step 5 : RUN gem install --no-rdoc --no-ri sciruby-full && iruby register
 ---> Running in a45de02b4710
ERROR:  While executing gem ... (Gem::DependencyResolutionError)
    conflicting dependencies nmatrix (= 0.2.0) and nmatrix (~> 0.1)
  Activated nmatrix-0.1.0 via:
    nmatrix-0.1.0 (~> 0.1), sciruby-full-0.2.8 (= 0.2.8)
  instead of (= 0.2.0) via:
    nmatrix-lapacke-0.2.0 (~> 0.2.0), mixed_models-0.1.1 (~> 0.1), sciruby-full-0.2.8 (= 0.2.8)
The command '/bin/sh -c gem install --no-rdoc --no-ri sciruby-full && iruby register' returned a non-zero code: 1
AbhimanyuAryan commented 8 years ago

@L226 here's the fix