2011-07-07 14 views
1

私は説明しましょう。 aldebaran SDKと組み合わせてwebotsを使用しています。私のオペレーティングシステムはDebian Squeeze amd64です。ウェブサイト(64ビット)は、ライブラリが32ビット用にコンパイルされているため、aldebaran SDKでは動作しません。 64ビットで再コンパイルするlibのソースはありません。 webots下デフォルトナオコントローラをコンパイルしようとしますが、私は次のエラーを取得する:Linuxでの32ビットライブラリとのリンク64bit

g++ -o naoqi_for_webots
naoqi_for_webots.o naoproxy.o -L"/usr/local/webots/lib" -lController -L"/home/alex/naoqi-sdk-1.10.44-linux/lib" -lnaoqiclient /usr/bin/ld: skipping incompatible /home/vor73x/naoqi-sdk-1.10.44-linux/lib/libnaoqiclient.so when searching for -lnaoqiclient /usr/bin/ld: cannot find -lnaoqiclient

file libnaqoqiclient.so

を行うと私に語った:

libnaoqiclient.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, not stripped

webotsのデフォルトのプロジェクトがありとりわけメイクファイル:

additional libraries: LIBRARIES=-L"$(AL_DIR)/lib" -lnaoqiclient

私はlibnaoqiclient.soとうまくリンクしていますが、他のwebotsライブラリ(libController.so)とはリンクしていないwebbitの32ビット版をダウンロードしてインストールしました。ここでもldは互換性のない型について苦情を受けています。

webbit 64bitと32bit aldebaran sdkをリンクできますか? Webbit 32bitと32bit aldebaranをリンクすることはできますか? (私はすべきですが、私はまだエラーがあります)。 ライブラリが32ビットであることをld(またはMakefileを使ってさらに良くする)にどのように指定できますか? 32bitのwebotsを使用している場合は、どのようにして32bitバイナリを指定することができますか? 私のバイナリが32または64ビットであれば気にしません。32ビット版または64ビット版のWebotを使用する場合は気にしません。コントローラをコンパイルできるようにするだけです。

答えて

2

まあ、32ビットと64ビットのコードを混在させることはできません。 -m32を使用してすべてのコードをコンパイルして(32ビットとしてビルドする場合)、にすべてのライブラリの32ビット版がある場合、アプリケーションにをリンクさせることができます。

関連する問題