让我解释一下。 我将webots与aldebaran SDK结合使用。我的操作系统是Debian Squeeze amd64。 Webots(64位)不能与aldebaran SDK一起使用,因为它们的库是针对32位编译的。我没有在64位重新编译的libs的源代码。 在尝试在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),动态链接,未剥离
webots中的默认项目有一个Makefile,其中包括:
其他图书馆: LIBRARIES = -L“$(AL_DIR)/ lib”-lnaoqiclient
我已下载并安装了32位版本的webots,它与libnaoqiclient.so链接良好,但不会与其他webots库(libController.so)链接,再次,ld抱怨不兼容的类型。
我可以使用64位网页与32位aldebaran sdk进行链接吗? 我可以使用32位aldebaran网站进行链接吗? (我应该,但我仍然有错误)。 如何指定ld(或通过Makefile甚至更好)库是32位? 或者在使用32位webbit的情况下如何指定我想要32位二进制文件? 我不在乎我的二进制文件是32位还是64位,我不在乎我是否使用32位或64位版本的webots,我只想能够编译控制器。
答案 0 :(得分:2)
好吧,你不能混用和匹配32位和64位代码。如果使用-m32
编译所有代码(使其构建为32位),您可以让应用程序链接如果您拥有32位版本的所有代码图书馆。