C++ プログラムで 32 ビットと 64 ビットの両方の .so ファイルを同時にリンクしようとしています。私は64ビットのUbuntu 12.04.1を使用していますが、再コンパイルするソースファイルもありません。
g++ コマンドを実行すると:
g++ onlineTraining.cpp -I /usr/local/MATLAB/R2012a_Student/extern/include/ -L /home/forest/SoarSuite/out/ -L /usr/local/MATLAB/R2012a_Student/bin/glnx86/ -I /home/フォレスト/SoarSuite/out/include -leng -lmat -lmex -lut -lSoar
32 ビットの .so ファイルを認識しないため、次の出力が得られます。
/usr/bin/ld: -leng の検索時に互換性のない /usr/local/MATLAB/R2012a_Student/bin/glnx86//libeng.so をスキップします /usr/bin/ld: -leng が見つかりません /usr/bin/ld: -lmat の検索時に、互換性のない /usr/local/MATLAB/R2012a_Student/bin/glnx86//libmat.so をスキップします /usr/bin/ld: -lmat が見つかりません /usr/bin/ld: -lmex の検索時に、互換性のない /usr/local/MATLAB/R2012a_Student/bin/glnx86//libmex.so をスキップします /usr/bin/ld: -lmex が見つかりません /usr/bin/ld: -lut の検索時に、互換性のない /usr/local/MATLAB/R2012a_Student/bin/glnx86//libut.so をスキップします /usr/bin/ld: -lut が見つかりません collect2: ld が 1 つの終了ステータスを返しました
-m32 を指定して g++ コマンドを実行すると:
g++ -m32 onlineTraining.cpp -I /usr/local/MATLAB/R2012a_Student/extern/include/ -L /home/forest/SoarSuite/out/ -L /usr/local/MATLAB/R2012a_Student/bin/glnx86/ -I / home/forest/SoarSuite/out/include -leng -lmat -lmex -lut -lSoar
64 ビットの .so ファイルを認識しないため、次の出力が得られます。
/usr/bin/ld: -lSoar の検索時に互換性のない /home/forest/SoarSuite/out//libSoar.so をスキップします /usr/bin/ld: -lSoar が見つかりません /usr/bin/ld: -lstdc++ の検索時に、互換性のない /usr/lib/gcc/x86_64-linux-gnu/4.6/libstdc++.so をスキップします /usr/bin/ld: -lstdc++ の検索時に、互換性のない /usr/lib/gcc/x86_64-linux-gnu/4.6/libstdc++.a をスキップします /usr/bin/ld: -lstdc++ が見つかりません collect2: ld が 1 つの終了ステータスを返しました
34 ビットと 64 ビットの両方の .so ファイルを同時にリンクすることはできますか? ありがとうございました。