simstringとswigの問題の切り分け - @ledsun blog で、simstringのgemをビルドするときはprepare.sh
に--swig
オプションをつける必要があることがわかりました。
simstring gemをDocker上で使いたいです。 Dockerコンテナを小さめにするために、Alpine Linux上でビルドしてみます。 次のエラーがおきます。
bash-5.1# make compiling export_wrap.cpp In file included from /usr/local/include/ruby-3.0.0/ruby/ruby.h:39, from /usr/local/include/ruby-3.0.0/ruby.h:38, from export_wrap.cpp:880: /usr/local/include/ruby-3.0.0/ruby/internal/memory.h:276:16: error: conflicting declaration of 'void* ruby_nonempty_memcpy(void*, const void*, size_t)' with 'C' linkage 276 | #define memcpy ruby_nonempty_memcpy | ^~~~~~~~~~~~~~~~~~~~ /usr/local/include/ruby-3.0.0/ruby/internal/memory.h:266:1: note: previous declaration with 'C++' linkage 266 | ruby_nonempty_memcpy(void *dest, const void *src, size_t n) | ^~~~~~~~~~~~~~~~~~~~ make: *** [Makefile:237: export_wrap.o] Error 1
error: conflicting declaration of 'void ruby_nonempty_memcpy(void, const void*, size_t)' with 'C' linkage
エラーメッセージでググると次のissueが見つかります。
解決されています。 ということはベースにしているDockerイメージのバージョンをあげれば?