2

昨日、プログラムが 32 ビット プロセスとして失敗するという問題に遭遇しました。

私は64ビットとしてコンパイルされたdylibを持っていて、それを64ビットアプリケーションで使用していました。しかし、テスト用に 32 ビットにしてロードしようとすると、うまくいきませんでした。dlopen() が NULL を返しましたか?

32 ビットと 64 ビットのバイナリには、それぞれ 32 ビットと 64 ビットの dylib が必要ですか? 回避策はありますか?

4

2 に答える 2

4

はい、32 ビット プロセスには 32 ビット ライブラリ、64 ビット プロセスには 64 ビット ライブラリが必要です。回避策はありません。

于 2011-11-04T10:22:11.310 に答える
2
  1. 64ビットコンパイラを使用して32ビットバイナリを構築できます。その逆も可能です。
  2. 32ビットカーネルで起動すると、64ビットバイナリをビルドして実行できます。その逆も可能です。
  3. 32ビットビルドを64ビットバイナリに対してリンクすることはできません。その逆も同様です。
于 2011-11-04T10:57:09.320 に答える