🦀
RustでクロスコンパイルにつまずいたときはOpenSSLでなくRustlsを使うといいかもしれない
背景
Rust製のDiscord BOTをRaspberry Pi Zero 2 W向けにCrossを使ってクロスコンパイルしようとした際、OpenSSL周りでエラーが発生し、コンパイルが進まない問題に直面しました。
問題
reqwestクレートではデフォルトでOpenSSLを使用しますが、これがCrossでのクロスコンパイル時に問題を引き起こすようです。すでに同様の問題が報告されており(例: cross-rs/cross#400)、それはCrossでのOpenSSLのサポートが打ち切られたことに端を発するようです(cross-rs/cross#229)。
解決策
reqwestクレートはOpenSSLの代わりにRustlsを使用することができます。Rustlsは純粋なRustで書かれたTLSライブラリで、OpenSSLの代替としてOpenSSLのサポート終了後の多くのCrossユーザーに利用されています。
自分の場合はCargo.tomlファイルを編集し、reqwestの依存関係にrustls-tlsを追加しただけで無事クロスコンパイルを通すことができました。
AIボイス・音楽の技術を専門に研究する、日本最大級のDiscordコミュニティです 下記のリンクから参加できます discord.gg/bmNezxjCq2
Discussion