2

我尝试为 Ruby 安装 gsl gem,但它不起作用。我有一个 matrix_complex.o 错误。那么有没有为 netbeans 安装 gsl 的解决方案?或者在其他库中是否有函数分位数?任何帮助,将不胜感激。

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:~$ 
4

2 回答 2

3

从https://github.com/romanbsd/rb-gsl/issues/2获得一些线索我在 Ubuntu 上做了以下操作:

卸载了我现有的 gsl:

sudo apt-get remove gsl-bin libgsl0-dev libgsl0ldbl

建立了一个新的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

安装了宝石

gem install gsl

这对我有用。

于 2012-05-28T01:11:26.653 回答
0

上述答案有效,因为您可以简单地使用 GSL 和 ruby​​ 绑定 (rb-gsl) 的 ~1.14 版本。

但是,如果您已经通过 homebrew ( ) 安装了 GSL或者更喜欢 1.15 版,您也可以在您的 ruby​​ 绑定brew install gsl中指定以下 repo :Gemfile

https://github.com/whistlerbrk/rb-gsl/

这是基于:

https://github.com/30robots/rb-gsl/

这有补丁,gsl_matrix第一个 repo 也有新版本 ruby​​gems 的补丁。

于 2013-02-26T19:25:49.180 回答