问题
I try to install gsl gem for Ruby but it doesn't work. i have a matrix_complex.o error. So is there a solution to install gsl for netbeans ? or is there a fonction quantile in an other library? Any help would be appreciated.
stagiaire@stagiaire-desktop:~$ sudo gem install -v=1.14.7 gsl
Building native extensions. This could take a while...
ERROR: Error installing gsl:
ERROR: Failed to build gem native extension.
/usr/bin/ruby1.8 extconf.rb
checking gsl version... 1.15
checking gsl cflags... -I/usr/include
checking for main() in -lcblas... no
checking gsl libs... -L/usr/lib -lgsl -lgslcblas -lm
checking for round()... no
checking for rngextra/rngextra.h... no
checking for qrngextra/qrngextra.h... no
checking for ool/ool_version.h... no
checking for tensor/tensor.h... no
checking for jacobi.h... no
checking for gsl/gsl_cqp.h... no
checking for gsl/gsl_multimin_fsdf.h... no
checking for gsl_poly_solve_quartic() in -lgsl... no
checking for gsl_eigen_francis() in -lgsl... yes
checking for ndlinear/gsl_multifit_ndlinear.h... no
checking for alf/alf.h... no
checking rb-gsl version...1.14.7
checking ruby version... 1.8.7
checking for graph... no
checking for narray.h... yes
checking for tamu_anova/tamu_anova.h... no
checking for main() in -ltamuanova... no
creating Makefile
make
gcc -I. -I. -I/usr/lib/ruby/1.8/i686-linux -I. -DHAVE_NARRAY_H -I/var/lib/gems/1.8/gems /narray-0.6.0.1/. -I/usr/local/lib/site_ruby/1.8/i686-linux -D_FILE_OFFSET_BITS=64 -fPIC -Wall -I../include -I/usr/include -c sf_debye.c
gcc -I. -I. -I/usr/lib/ruby/1.8/i686-linux -I. -DHAVE_NARRAY_H -I/var/lib/gems/1.8/gems /narray-0.6.0.1/. -I/usr/local/lib/site_ruby/1.8/i686-linux -D_FILE_OFFSET_BITS=64 -fPIC -Wall -I../include -I/usr/include -c histogram.c
histogram.c: In function ‘rb_gsl_histogram_fit_exponential’:
histogram.c:1029:24: attention : variable ‘hh’ set but not used [-Wunused-but-set-variable]
histogram.c: In function ‘rb_gsl_histogram_fit_power’:
histogram.c:1079:24: attention : variable ‘hh’ set but not used [-Wunused-but-set-variable]
gcc -I. -I. -I/usr/lib/ruby/1.8/i686-linux -I. -DHAVE_NARRAY_H -I/var/lib/gems/1.8/gems/narray-0.6.0.1/. -I/usr/local/lib/site_ruby/1.8/i686-linux -D_FILE_OFFSET_BITS=64 -fPIC -Wall -I../include -I/usr/include -c eigen.c
gcc -I. -I. -I/usr/lib/ruby/1.8/i686-linux -I. -DHAVE_NARRAY_H -I/var/lib/gems/1.8/gems/narray-0.6.0.1/. -I/usr/local/lib/site_ruby/1.8/i686-linux -D_FILE_OFFSET_BITS=64 -fPIC -Wall -I../include -I/usr/include -c histogram_oper.c
gcc -I. -I. -I/usr/lib/ruby/1.8/i686-linux -I. -DHAVE_NARRAY_H -I/var/lib/gems/1.8/gems/narray-0.6.0.1/. -I/usr/local/lib/site_ruby/1.8/i686-linux -D_FILE_OFFSET_BITS=64 -fPIC -Wall -I../include -I/usr/include -c signal.c
signal.c: In function ‘rb_gsl_fft_conv_corr’:
signal.c:108:28: attention : variable ‘stride3’ set but not used [-Wunused-but-set-variable]
gcc -I. -I. -I/usr/lib/ruby/1.8/i686-linux -I. -DHAVE_NARRAY_H -I/var/lib/gems/1.8/gems/narray-0.6.0.1/. -I/usr/local/lib/site_ruby/1.8/i686-linux -D_FILE_OFFSET_BITS=64 -fPIC -Wall -I../include -I/usr/include -c graph.c
graph.c:974:13: attention : ‘gsl_graph_set_command’ defined but not used [-Wunused-function]
gcc -I. -I. -I/usr/lib/ruby/1.8/i686-linux -I. -DHAVE_NARRAY_H -I/var/lib/gems/1.8/gems/narray-0.6.0.1/. -I/usr/local/lib/site_ruby/1.8/i686-linux -D_FILE_OFFSET_BITS=64 -fPIC -Wall -I../include -I/usr/include -c sf_zeta.c
gcc -I. -I. -I/usr/lib/ruby/1.8/i686-linux -I. -DHAVE_NARRAY_H -I/var/lib/gems/1.8/gems/narray-0.6.0.1/. -I/usr/local/lib/site_ruby/1.8/i686-linux -D_FILE_OFFSET_BITS=64 -fPIC -Wall -I../include -I/usr/include -c sf_elljac.c
sf_elljac.c: In function ‘rb_gsl_sf_elljac_e’:
sf_elljac.c:18:7: attention : variable ‘status’ set but not used [-Wunused-but-set-variable]
gcc -I. -I. -I/usr/lib/ruby/1.8/i686-linux -I. -DHAVE_NARRAY_H -I/var/lib/gems/1.8/gems/narray-0.6.0.1/. -I/usr/local/lib/site_ruby/1.8/i686-linux -D_FILE_OFFSET_BITS=64 -fPIC -Wall -I../include -I/usr/include -c ieee.c
gcc -I. -I. -I/usr/lib/ruby/1.8/i686-linux -I. -DHAVE_NARRAY_H -I/var/lib/gems/1.8/gems/narray-0.6.0.1/. -I/usr/local/lib/site_ruby/1.8/i686-linux -D_FILE_OFFSET_BITS=64 -fPIC -Wall -I../include -I/usr/include -c array_complex.c
array_complex.c: In function ‘rb_gsl_complex_arithmetics5’:
array_complex.c:34:9: attention : variable ‘func3’ set but not used [-Wunused-but-set-variable]
array_complex.c:33:9: attention : variable ‘func2’ set but not used [-Wunused-but-set-variable]
gcc -I. -I. -I/usr/lib/ruby/1.8/i686-linux -I. -DHAVE_NARRAY_H -I/var/lib/gems/1.8/gems/narray-0.6.0.1/. -I/usr/local/lib/site_ruby/1.8/i686-linux -D_FILE_OFFSET_BITS=64 -fPIC -Wall -I../include -I/usr/include -c histogram3d_source.c
gcc -I. -I. -I/usr/lib/ruby/1.8/i686-linux -I. -DHAVE_NARRAY_H -I/var/lib/gems/1.8/gems/narray-0.6.0.1/. -I/usr/local/lib/site_ruby/1.8/i686-linux -D_FILE_OFFSET_BITS=64 -fPIC -Wall -I../include -I/usr/include -c vector_double.c
vector_double.c: In function ‘rb_gsl_vector_normalize_bang’:
vector_double.c:872:10: attention : variable ‘mean’ set but not used [-Wunused-but-set-variable]
vector_double.c: Hors de toute fonction :
vector_double.c:692:13: attention : ‘draw_hist’ defined but not used [-Wunused-function]
vector_double.c:624:13: attention : ‘draw_vector’ defined but not used [-Wunused-function]
vector_double.c:634:13: attention : ‘draw_vector2’ defined but not used [-Wunused-function]
vector_double.c:704:13: attention : ‘draw_vector_array’ defined but not used [-Wunused-function]
vector_double.c:679:13: attention : ‘draw_narray’ defined but not used [-Wunused-function]
gcc -I. -I. -I/usr/lib/ruby/1.8/i686-linux -I. -DHAVE_NARRAY_H -I/var/lib/gems/1.8/gems/narray-0.6.0.1/. -I/usr/local/lib/site_ruby/1.8/i686-linux -D_FILE_OFFSET_BITS=64 -fPIC -Wall -I../include -I/usr/include -c const.c
gcc -I. -I. -I/usr/lib/ruby/1.8/i686-linux -I. -DHAVE_NARRAY_H -I/var/lib/gems/1.8/gems/narray-0.6.0.1/. -I/usr/local/lib/site_ruby/1.8/i686-linux -D_FILE_OFFSET_BITS=64 -fPIC -Wall -I../include -I/usr/include -c block.c
In file included from block.c:29:0:
block_source.c: In function ‘rb_gsl_block_compare’:
block_source.c:550:7: attention : variable ‘status’ set but not used [-Wunused-but-set-variable]
In file included from block.c:35:0:
block_source.c: In function ‘rb_gsl_block_int_compare’:
block_source.c:550:7: attention : variable ‘status’ set but not used [-Wunused-but-set-variable]
In file included from block.c:41:0:
block_source.c: In function ‘rb_gsl_block_uchar_compare’:
block_source.c:550:7: attention : variable ‘status’ set but not used [-Wunused-but-set-variable]
gcc -I. -I. -I/usr/lib/ruby/1.8/i686-linux -I. -DHAVE_NARRAY_H -I/var/lib/gems/1.8/gems/narray-0.6.0.1/. -I/usr/local/lib/site_ruby/1.8/i686-linux -D_FILE_OFFSET_BITS=64 -fPIC -Wall -I../include -I/usr/include -c sf_dawson.c
gcc -I. -I. -I/usr/lib/ruby/1.8/i686-linux -I. -DHAVE_NARRAY_H -I/var/lib/gems/1.8/gems/narray-0.6.0.1/. -I/usr/local/lib/site_ruby/1.8/i686-linux -D_FILE_OFFSET_BITS=64 -fPIC -Wall -I../include -I/usr/include -c fcmp.c
gcc -I. -I. -I/usr/lib/ruby/1.8/i686-linux -I. -DHAVE_NARRAY_H -I/var/lib/gems/1.8/gems/narray-0.6.0.1/. -I/usr/local/lib/site_ruby/1.8/i686-linux -D_FILE_OFFSET_BITS=64 -fPIC -Wall -I../include -I/usr/include -c matrix_complex.c
matrix_complex.c: In function ‘rb_gsl_matrix_complex_eye’:
matrix_complex.c:202:19: attention : variable ‘p’ set but not used [-Wunused-but-set-variable]
matrix_complex.c: In function ‘rb_gsl_matrix_complex_set_row’:
matrix_complex.c:410:19: attention : variable ‘pz’ set but not used [-Wunused-but-set-variable]
matrix_complex.c: In function ‘rb_gsl_matrix_complex_set_col’:
matrix_complex.c:436:19: attention : variable ‘pz’ set but not used [-Wunused-but-set-variable]
matrix_complex.c: In function ‘rb_gsl_matrix_complex_inspect’:
matrix_complex.c:654:3: attention : format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 4 has type ‘size_t’ [-Wformat]
matrix_complex.c:654:3: attention : format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 5 has type ‘size_t’ [-Wformat]
matrix_complex.c: Hors de toute fonction :
matrix_complex.c:1523:12: erreur: conflicting types for ‘gsl_matrix_complex_equal’
/usr/include/gsl/gsl_matrix_complex_double.h:227:5: note: previous declaration of ‘gsl_matrix_complex_equal’ was here
make: *** [matrix_complex.o] Erreur 1
Gem files will remain installed in /var/lib/gems/1.8/gems/gsl-1.14.7 for inspection.
Results logged to /var/lib/gems/1.8/gems/gsl-1.14.7/ext/gem_make.out
stagiaire@stagiaire-desktop:~$
回答1:
Getting some clues from https://github.com/romanbsd/rb-gsl/issues/2 I did the following on Ubuntu:
Uninstalled my existing gsl:
sudo apt-get remove gsl-bin libgsl0-dev libgsl0ldbl
Built a new gsl
wget ftp.gnu.org/gnu/gsl/gsl-1.14.tar.gz
tar xf gsl-1.14.tar.gz
cd gsl-1.14
./configure
make
sudo make install
Installed the gem
gem install gsl
This worked for me.
回答2:
The above answer works as you can simply use version ~1.14 of both the GSL and ruby bindings (rb-gsl).
However, if you have installed GSL via homebrew (brew install gsl
) or prefer version 1.15 you can alternatively specify the following repo in your Gemfile
for the ruby bindings:
https://github.com/whistlerbrk/rb-gsl/
which is based off of:
https://github.com/30robots/rb-gsl/
This has the patch for gsl_matrix
and the first repo also has a patch for newer versions of rubygems.
来源:https://stackoverflow.com/questions/10316140/i-have-an-error-when-i-install-gsl-with-netbeans