Почему я получаю ошибку кодирования, когда требуется общий объект, скомпилированный из Rust в 32-битной Linux? - PullRequest
0 голосов
/ 17 января 2019

Справочная информация: я использую Helix для написания собственного расширения для Ruby, написанного на Rust. На моем 64-битном MacBook Pro все работает нормально, я испытываю эту проблему на 32-битной машине Linux (i686-unknown-linux-gnu). Проблема возникает независимо от кода в источнике Rust.

Общий объект компилируется нормально, но если я пытаюсь его потребовать, я всегда получаю сообщение об ошибке, подобное следующему:

`require': invalid symbol in encoding US-ASCII :"(}\xC3\xBFtO\xEE\xB7\xE0\xEBi\x01\xAC|\xC3\xBF\x18.\x8D\xB5\xC6\xC0\x89\xB5\xFD\xF1\x8B\xB5\x80\x8B\x91\x01\x18.\x8D\xB5\xB7\xC0\x89\xB5\xE0|\xC3\xBF\xFA\x8Ck" (EncodingError)

При разных вызовах Ruby, когда мне требуется файл, двоичная строка в сообщении об ошибке отличается, что еще больше сбивает меня с толку.

Шаги для воспроизведения (обязательно: Helix , Rust, Ruby, Bundler):

Примечание: я использую

  • Спираль 0,7,5
  • груз 1,30,0 (a1a4ad372 2018-11-02)
  • rustc 1.30.1 (1433507eb 2018-11-07)
  • ruby ​​2.6.0p0 (2018-12-25 редакция 66547) [i686-linux]
  • Версия Bundler 1.17.2

Но та же проблема существует с рекомендованными версиями от Helix README, хотя и скомпилированными для 32-битных, а не для 64-битных

  • Helix 0.7.5
  • груз 0,18,0 (fe7b0cdcf 2017-04-24)
  • rustc 1.17.0 (56124baa9 2017-04-24)
  • ruby ​​2.4.1p111 (2017-03-22, редакция 58053) [i686-linux]
  • Версия Bundler 1.14.6
mkdir repro
cd repro/
bundle init
echo 'gem "helix-rails"' > Gemfile
bundle
helix bootstrap example
cd example
bundle exec rake build
bundle exec ruby lib/example.rb

Я также открыл выпуск 163 в репозитории tildeio / helix .

...