2011-07-07 2 views
1

설명해 드리겠습니다. aldebaran SDK과 조합하여 webots을 사용하고 있습니다. 제 운영체제는 Debian Squeeze amd64입니다. 웹 사이트 (64 비트)는 라이브러리가 32 비트 용으로 컴파일되기 때문에 aldebaran SDK에서 작동하지 않습니다. 64 비트에서 리 컴파일 할 라이브러리의 소스가 없습니다.리눅스에서 32 비트 라이브러리로 연결하기 64bit

file libnaqoqiclient.so

가 나에게 말한다

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

일 :

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

webots의 기본 프로젝트가 webots에서 기본 NAO 컨트롤러를 컴파일하는 중에 는, 나는 다음과 같은 오류가 발생합니다 다른 것들 사이에있는 Makefile :

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

웹 사이트의 32 비트 버전을 다운로드하여 설치했는데 libnaoqiclient.so와 잘 연결되지만 다른 webots 라이브러리 (libController.so)와는 연결되지 않습니다. 여기서 ld는 호환되지 않는 유형에 대해 불평합니다.

webbit 64bit를 32bit aldebaran sdk와 연결할 수 있습니까? 웹 비트 32 비트를 32 비트 알데바란과 연결할 수 있습니까? (나는해야하지만, 나는 여전히 오류가 발생한다). 라이브러리가 32 비트라고 ld (또는 Makefile을 통해 더 잘 표현할 수있는 방법)를 어떻게 지정할 수 있습니까? 또는 webots 32bit를 사용하는 경우 어떻게 32 비트 바이너리를 지정할 수 있습니까? 내 바이너리가 32 비트 또는 64 비트인지 상관하지 않습니다. 32 비트 또는 64 비트 버전의 웹트를 사용하면 컨트롤러를 컴파일 할 수 있기를 바랍니다.

답변

2

음, 32 비트 및 64 비트 코드를 혼합하고 일치시킬 수 없습니다. -m32을 사용하여 모든 코드를 컴파일하면 (32 비트로 빌드하기 위해)에 모든 라이브러리의 32 비트 버전을 사용할 수있는 경우 응용 프로그램을 에 연결할 수 있습니다.