【发布时间】:2023-04-03 23:57:01
【问题描述】:
让我解释一下。 我将webots 与aldebaran SDK 结合使用。我的操作系统是 Debian Squeeze amd64。 Webots(64 位)不能与aldebaran SDK 一起使用,因为它们的库是为 32 位编译的。我没有在 64 位中重新编译的库的来源。 在尝试在 webots 下编译默认的 nao 控制器时,我收到以下错误:
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: 跳过不兼容的 /home/vor73x/naoqi-sdk-1.10.44-linux/lib/libnaoqiclient.so 搜索时 -lnaoqiclient /usr/bin/ld: 找不到-lnaoqiclient
做一个
文件 libnaqoqiclient.so
告诉我:
libnaoqiclient.so:ELF 32 位 LSB 共享对象,Intel 80386,版本 1 (SYSV),动态链接,未剥离
webbots 中的默认项目有一个 Makefile,其中包括:
其他库: LIBRARIES=-L"$(AL_DIR)/lib" -lnaoqiclient
我已经下载并安装了 32 位版本的 webbots,它与 libnaoqiclient.so 链接良好,但无法与其他 webbots 库 (libController.so) 链接,再次,ld 抱怨类型不兼容。
我可以使用 64 位的 webots 与 32 位的 aldebaran sdk 链接吗? 我可以使用 32bit 的 webots 与 32bit aldebaran 链接吗? (我应该,但我仍然得到错误)。 如何指定 ld (或通过 Makefile 更好)该库是 32bits ? 或者在使用 32 位 webbots 的情况下,我如何指定我想要一个 32 位二进制文件? 我不在乎我的二进制文件是 32 位还是 64 位,我不在乎我使用的是 32 位还是 64 位版本的 webbot,我只想能够编译控制器。
【问题讨论】:
标签: linux static-linking