IronPDF.LinuxARM: Cannot allocate memory in static TLS block

This article was translated from English: Does it need improvement?
Translated
View the article in English

Linux ARMのIronPDFバージョンを使用すると, Linux ARMでlibcef.soを動的にロードしようとしたときに例外メッセージが表示されます。 以下の例外メッセージが表示されます。

IronSoftware.Exceptions.IronSoftwareDeploymentException: Error while deploying IronPdf Chrome renderer: '/irontest/testIronPdfOnLinuxArm/bin/Debug/net8.0/runtimes/linux-arm64/native/libcef.so: cannot allocate memory in static TLS block'. To learn more about making an engineering support request please visit: . To learn how to solve this issue please read https://ironpdf.com/troubleshooting/error-while-deploying-chrome-dependencies/ [Issue Code IRONPDF-CHROME-DEPLOYMENT-ERROR-LINUX]

問題

Linux ARMでlibcef.soを動的に読み込む際、「静的TLSブロックでメモリを割り当てることができません」というエラーが発生することがあります。このエラーは、Chromium Embedded Framework(CEF)に関連する認識された問題です。 これは、CEFの新しいバージョンが、Linux動的リンカーがデフォルトで割り当てる以上のスレッドローカルストレージ(TLS)スペースを要求するために発生します。 この問題は十分に文書化されており、Linux ARMプロセッサとLinux ARM x64システムの両方に影響し、どちらの場合もCEFの新しいバージョンに対して十分なスレッドローカルストレージ(TLS)を持たないことが原因です。 この問題に関する詳細情報と議論はこちらで見つけることができます。

解決策

この例外の解決策は、以下に示すようにアプリケーションを実行する前に手動で設定することです。

export LD_PRELOAD=/path/to/libcef.so
export LD_PRELOAD=/path/to/libcef.so
SHELL

C#プロセスの前にLD_PRELOADを手動で設定することで、リンカーにlibcef.soを他のライブラリよりも先に読み込ませ、適切なTLSメモリの割り当てを確保します。 このアプローチは非常に効果的であることが実証されており、問題を解決し、TLS allocationエラーによる失敗を防ぎます。 この解決策が機能することに自信を持ってください。

LD_PRELOADメソッドは、CEFフォーラムを含む他のユーザーによって推奨される最も効果的で簡単なアプローチです。

これは、x64ビルドでlibxml2のTLS使用量を削減して解決したように、最終的にCEFがARMの問題を解決するまでの間の回避策です。しかし、CEFがこれに対処する時期は定義されていません。

Curtis Chau
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。

準備はいいですか?
Nuget ダウンロード 16,133,208 | バージョン: 2025.11 ただ今リリースされました