Native support under Ruby 3.2: Undefined symbols for architecture arm64
HashNotAdam opened this issue · comments
Adam Rice commented
When using the native version on Ruby 3.2 using a Mac with Apple Silicon, the following error is thrown:
[1] pry(main)> require "fuzzystringmatch"
=> true
[2] pry(main)> jarow = FuzzyStringMatch::JaroWinkler.create(:native)
# [Warnings from issue 24]
Undefined symbols for architecture arm64:
"_rb_cObject", referenced from:
_Init_Inline_FuzzyStringMatch__JaroWinklerInline_b28bdb41b9c5ed658e673cdd79216695 in Inline_FuzzyStringMatch__JaroWinklerInline_b28bdb41b9c5ed658e673cdd79216695-13a412.o
"_rb_const_get", referenced from:
_Init_Inline_FuzzyStringMatch__JaroWinklerInline_b28bdb41b9c5ed658e673cdd79216695 in Inline_FuzzyStringMatch__JaroWinklerInline_b28bdb41b9c5ed658e673cdd79216695-13a412.o
"_rb_define_method", referenced from:
_Init_Inline_FuzzyStringMatch__JaroWinklerInline_b28bdb41b9c5ed658e673cdd79216695 in Inline_FuzzyStringMatch__JaroWinklerInline_b28bdb41b9c5ed658e673cdd79216695-13a412.o
"_rb_float_new", referenced from:
getDistanceInternal(unsigned long, unsigned long, unsigned long) in Inline_FuzzyStringMatch__JaroWinklerInline_b28bdb41b9c5ed658e673cdd79216695-13a412.o
"_rb_intern2", referenced from:
_Init_Inline_FuzzyStringMatch__JaroWinklerInline_b28bdb41b9c5ed658e673cdd79216695 in Inline_FuzzyStringMatch__JaroWinklerInline_b28bdb41b9c5ed658e673cdd79216695-13a412.o
"_rb_string_value_ptr", referenced from:
getDistanceInternal(unsigned long, unsigned long, unsigned long) in Inline_FuzzyStringMatch__JaroWinklerInline_b28bdb41b9c5ed658e673cdd79216695-13a412.o
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
fuzzy-string-match Warning: fallback into pure version, because compile failed.
While the error references arm64, this error did not occur under Ruby 3.0.3 on Apple Silicon