/ / ओएस एक्स पर रूबी जीएसएल - माणिक

रूबी ओएस एक्स पर GSL-रूबी

मैं ओएस एक्स 10.9 पर रूबी जीएसएल स्थापित करने की कोशिश कर रहा हूं। मैं रूबी 2.0.0 का उपयोग आरवीएम का उपयोग करके स्थापित कर रहा हूं। इसके अनुसार साइट, मुझे पहले स्थापित जीएसएल की आवश्यकता है। इसके साथ, मैंने GSL को स्थापित करने के लिए Homebrew का उपयोग किया (brew install gsl)। अगला, मैंने किया gem install gsl, लेकिन यह त्रुटि संदेश दिया गया था:

compiling fft.c
fft.c:270:60: warning: implicit conversion loses integer precision: "size_t" (aka "unsigned long") to "int" [-Wshorten-64-to-32]
for (i = 0; i < table->nf; i++) gsl_vector_int_set(v, i, table->factor[i]);
~~~~~~~~~~~~~~~~~~       ^~~~~~~~~~~~~~~~
fft.c:614:18: warning: implicit conversion loses integer precision: "size_t" (aka "unsigned long") to "int" [-Wshorten-64-to-32]
shape[0] = n;
~ ^
fft.c:706:18: warning: implicit conversion loses integer precision: "size_t" (aka "unsigned long") to "int" [-Wshorten-64-to-32]
shape[0] = n;
~ ^
fft.c:773:18: warning: implicit conversion loses integer precision: "size_t" (aka "unsigned long") to "int" [-Wshorten-64-to-32]
shape[0] = n;
~ ^
fft.c:910:48: error: use of undeclared identifier "forward"
rb_define_const(mgsl_fft, "Forward", INT2FIX(forward));
^
/Users/yihangho/.rvm/rubies/ruby-2.0.0-p353/include/ruby-2.0.0/ruby/ruby.h:241:45: note: expanded from macro "INT2FIX"
#define INT2FIX(i) ((VALUE)(((SIGNED_VALUE)(i))<<1 | FIXNUM_FLAG))
^
fft.c:911:48: error: use of undeclared identifier "forward"
rb_define_const(mgsl_fft, "FORWARD", INT2FIX(forward));
^
/Users/yihangho/.rvm/rubies/ruby-2.0.0-p353/include/ruby-2.0.0/ruby/ruby.h:241:45: note: expanded from macro "INT2FIX"
#define INT2FIX(i) ((VALUE)(((SIGNED_VALUE)(i))<<1 | FIXNUM_FLAG))
^
fft.c:912:49: error: use of undeclared identifier "backward"
rb_define_const(mgsl_fft, "Backward", INT2FIX(backward));
^
/Users/yihangho/.rvm/rubies/ruby-2.0.0-p353/include/ruby-2.0.0/ruby/ruby.h:241:45: note: expanded from macro "INT2FIX"
#define INT2FIX(i) ((VALUE)(((SIGNED_VALUE)(i))<<1 | FIXNUM_FLAG))
^
fft.c:913:49: error: use of undeclared identifier "backward"
rb_define_const(mgsl_fft, "BACKWARD", INT2FIX(backward));
^
/Users/yihangho/.rvm/rubies/ruby-2.0.0-p353/include/ruby-2.0.0/ruby/ruby.h:241:45: note: expanded from macro "INT2FIX"
#define INT2FIX(i) ((VALUE)(((SIGNED_VALUE)(i))<<1 | FIXNUM_FLAG))
^
4 warnings and 4 errors generated.
make: *** [fft.o] Error 1

इसे ठीक करने के लिए कोई भी विचार?

उत्तर:

उत्तर № 1 के लिए 1

जीएसएल के हाल के संस्करणों में अब शामिल नहीं हैं backward तथा forward, उनके साथ बदल रहा है gsl_fft_forward तथा gsl_fft_backward, तथा gsl_wavelet_forward तथा gsl_wavelet_backward.

इस पैच को लागू करने का प्रयास करें, जो पुराने एनम को नए के साथ बदल देता है: https://github.com/mvz/rb-gsl-nmatrix/commit/fe7643cd3026690f7de527b2a220c24330a85018