C++コードでOpenMPを使用しています。
libgomp.so.1は私のlibフォルダーにあります。LD_LIBRARY_PATHにもパスを追加しました
それでも実行時にエラーメッセージが表示されます:libgomp.so.1:共有オブジェクトファイルを開くことができません
コンパイル時に、-fopenmpオプションを使用してコードをコンパイルします。
何が問題を引き起こす可能性があるのか考えていますか?
ありがとう
C++コードでOpenMPを使用しています。
libgomp.so.1は私のlibフォルダーにあります。LD_LIBRARY_PATHにもパスを追加しました
それでも実行時にエラーメッセージが表示されます:libgomp.so.1:共有オブジェクトファイルを開くことができません
コンパイル時に、-fopenmpオプションを使用してコードをコンパイルします。
何が問題を引き起こす可能性があるのか考えていますか?
ありがとう
プログラムに静的リンクを使用します。あなたの場合、それは を使用することを意味し、必要に応じて関連するおよびライブラリ-fopenmp -static
へのフルパスを指定します。librt.a
libgomp.a
静的リンクは、プログラムを実行するために必要なすべてのコードをバイナリと一緒にパッケージ化するだけなので、これで問題が解決します。したがって、ターゲット システムは動的ライブラリを検索する必要はなく、それらがターゲット システムに存在するかどうかも問題ではありません。
静的リンクは奇跡的な治療法ではないことに注意してください。奇妙なハードウェアエミュレーターに関する特定の問題については、良いアプローチになるはずです。ただし、一般に、静的リンクには (少なくとも) 2 つの欠点があります。
x
。共有ライブラリでは、パッチが利用可能になったらライブラリを更新するだけで十分です。すべてのアプリケーションが静的にリンクされている場合、これらすべての開発者がアプリケーションを再リンクして再リリースするまで待つ必要があります。