私は説明しましょう。 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を使用する場合は気にしません。コントローラをコンパイルできるようにするだけです。