2

プロジェクトを 64 ビット マシンの PhysX ライブラリにリンクするのに問題があります。それは完全にうまくコンパイルされます。私は 32 ビット マシンとまったく同じ設定を使用しました (一部のデバッグ フラグを除いて)。これは完全に正常にリンクします。ビルド出力は次のとおりです。

g++ -L/usr/lib/PhysX/v2.8.1 -L/usr/lib -o"PhysXTest" ./main.o -lPhysXLoader -lglut

/usr/bin/ld: -lPhysXLoader の検索時に、互換性のない /usr/lib/libPhysXLoader.so をスキップします

/usr/bin/ld: -lPhysXLoader の検索時に、互換性のない /usr/lib/gcc/x86_64-linux-gnu/4.2.3/../../../../lib/libPhysXLoader.so をスキップします

usr/bin/ld: -lPhysXLoader の検索時に、互換性のない /usr/lib/../lib/libPhysXLoader.so をスキップします

/usr/bin/ld: -lPhysXLoader の検索時に、互換性のない /usr/lib/gcc/x86_64-linux-gnu/4.2.3/../../../libPhysXLoader.so をスキップします

/usr/bin/ld: -lPhysXLoader の検索時に、互換性のない /usr/bin/../lib/libPhysXLoader.so をスキップします

/usr/bin/ld: -lPhysXLoader の検索時に、互換性のない /usr/lib64/libPhysXLoader.so をスキップします

/usr/bin/ld: -lPhysXLoader の検索時に、互換性のない /usr/lib/libPhysXLoader.so をスキップします

/usr/bin/ld: -lPhysXLoader が見つかりません

また、何らかの影響がある場合は、usr/lib へのシンボリック リンクを既に設定しています。誰が何が起こっているのか知っていますか?詳細が必要な場合はお知らせください。いつもありがとうございます。

4

2 に答える 2

3

Robert Gould が言ったように、32 ビットと 64 ビットのオブジェクトまたは共有ライブラリをリンクすることはできません。それらは単にリンク互換性がありません。

32 ビットの PhysX しかないため、実行可能ファイル (この例では main.o) にリンクされる他のすべてのコードを 32 ビット モードで ( gcc フラグを使用して)コンパイルし、32 ビット バージョンのPhysXをインストールする必要があります。他のすべてのライブラリ (glut、libGL、libX11、libc など)。-m32

RedHat はこれを簡単にします -- RedHat はすべての 32 ビットと 64 ビットのパッケージを提供し、それらを /usr/lib32 と /usr/lib64 に分けます ...

AFAICT、Ubuntu にはありません。amd64 と i386 の両方のパッケージに /usr/lib/libglut.so.3.8.0 が含まれています。すべての 32 ビット バージョンをダウンロードし、それらを /usr/lib ではなく /usr/lib32 に「手動で」インストールする必要があります。

于 2009-01-22T07:45:06.230 に答える
1

PhysiX 共有オブジェクトが 32 ビットでコンパイルされているようです。32 ビット .so を 64 ビット アプリケーションにリンクすることはできません。elf は異なります。64 ビット版のライブラリをダウンロードしましたか? ただし、PhysX が 64 ビットをサポートしているかどうかはわかりません。最後に見たときはありませんでしたが、それは今ではほぼ2年前のことです。

編集: PhysX は、32 ビット アーキテクチャに依存するいくつかの深刻な配列処理とアセンブリ、およびその他の非常に低レベルのメモリ トリックを使用します。これを 64 ビットで実行するには、かなりの労力が必要です。現在、彼らはコンソール ゲーム メーカー (彼らの真の有料顧客) を対象としており、まだ 64 ビットのコンソールはなく、64 ビット バージョンをリリースするまでにはおそらくしばらく時間がかかるため、リンクすることはできません。コンパイラをだましてそれらをリンクすると、すぐにコアダンプします

于 2009-01-22T03:22:39.693 に答える