0

を使用してリンカー/ランタイム エラーを診断しようとしていますsetenv LD_BIND_NOW TRUE。このオプションを有効にして実行可能ファイルを実行すると、エラーが発生します

   lib/libmkl_intel_thread.so: error: symbol lookup error: undefined symbol: DftiFreeDescriptor (fatal)

ただし、その後LD_BIND_NOW環境変数を削除すると、プログラムは正常に実行されます (終了するまでは、メモリの破損が報告されますが、それは無関係かもしれません)。

だから私は少し混乱しています: シンボル検索エラーが発生した場合、プログラムはどのように実行されますか? プログラムはJavaではなくC++で書かれているため、終了する必要があると思いました。(こちらを参考にしてください。)

また、このエラーは myrpathが正しく設定されていないこと、または MKL が正しく構築されていないことを意味しますか? 限られた時間で達成できる修正はありますか?

4

1 に答える 1

1

まず、私はあなたが必要だと思った(同義語かもしれないが、とはLD_BIND_NOW=1対照的に)。TRUE

第 2 に、未解決のシンボルがあればアプリケーションはリンクされませんでしたが、使用されているライブラリの 1 つが未解決のシンボルを持つライブラリを順番に使用するように、何らかの形式の共有ライブラリの更新を行った可能性はありますか? または、リンクされたライブラリとは異なるライブラリを使用していることはありますか?

于 2014-01-18T17:16:52.893 に答える