gpt4 book ai didi

linux - 在 linux 64 位下链接 32 位库

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:28:56 25 4
gpt4 key购买 nike

让我解释一下。我正在使用 webots结合aldebaran SDK .我的操作系统是 Debian Squeeze amd64。 Webots(64 位)不能与 aldebaran SDK 一起使用,因为它们的库是为 32 位编译的。我没有 64 位重新编译的库源。在 webots 下尝试编译默认的 nao Controller 时,出现以下错误:

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 中的默认项目有一个 Makefile,其中包括:

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

我已经下载并安装了 32 位版本的 webots,它与 libnaoqiclient.so 链接良好,但不会与其他 webots 库 (libController.so) 链接,ld 再次提示类型不兼容。

我可以使用 webots 64 位与 32 位 aldebaran sdk 链接吗?我可以使用 32 位 webots 与 32 位 aldebaran 链接吗? (我应该,但我仍然会出错)。我如何向 ld(或者通过 Makefile 更好)指定库是 32 位的?或者在使用 webots 32 位的情况下,我如何指定我想要一个 32 位二进制文​​件?我不关心我的二进制文件是 32 位还是 64 位,我不关心我使用的是 32 位还是 64 位版本的 webots,我只想能够编译 Controller 。

最佳答案

嗯,您不能混合搭配 32 位和 64 位代码。如果您使用 -m32 编译您的所有代码(使其构建为 32 位),您可以如果您有 32 位的应用程序链接所有可用库的版本。

关于linux - 在 linux 64 位下链接 32 位库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6605384/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com