正確に何が起こるかを次のように説明します。 私は動的ロードによって別の共有ライブラリ(B)をロードする共有ライブラリ(A)を持っています。 ライブラリAはいくつかのメソッド(F1)も公開しています。関数が実行されない
メインプログラムはライブラリAをロードし、ライブラリAは後でライブラリBをロードします。 ライブラリBがライブラリAの関数F1を使用しようとすると、シンボルのロードに失敗し、警告/エラーまたはコアを与えずにコンパイルがサイレントモードで停止します。ライブラリAからエクスポートされたこれらのシンボルを見ることができます(nmコマンドを使用)。 正確に何が起こっているのかよく分かりません。私はこれをLinux64で観察しました。 Windowsと同じシナリオが機能します。
これをどのようにコンパイルしようとしましたか? – qwertz
ダイナミックライブラリの場合、コンパイラは何をそれに関係させますか?私はリンクを見ません.. – Nim
彼が言った。ライブラリを自分でコンパイルしましたか?彼らは64ビットシステム上で動作していることを認識していますか?また、BはAの関数をどのように知っていますか? –