Ubuntu 64 비트에서 32 비트 앱을 실행하는 방법은 무엇입니까? Android 개발

Ubuntu 14.04와 현재 Android 개발 SDK (32 비트 실행 파일 포함)를 설치했습니다. 32 비트 바이너리를 실행할 수 없다는 것을 알았습니다. bash에서 시작하려고하면 오류가 발생합니다.

$ ./adb
bash: ./adb: No such file or directory

그래도 있습니다.

$ ls -al ./adb
-rwxrwxrwx 1 thomas thomas 1231255 Jan 17 13:31 ./adb
$ file ./adb
./adb: ELF 32-bit LSB  executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.8, not stripped. Same symptom for all the other 32-bit tools in the Android SDK.

예전에는 64 비트 Ubuntu에 32 비트 라이브러리를 설치하여 32 비트를 지원했지만 더 이상 작동하지 않는 것 같습니다.

64 비트 Ubuntu 14.04에서 32 비트 앱을 어떻게 실행합니까?



답변

64 비트 멀티 아키텍처 우분투 시스템에 32 비트 실행 파일을 실행하려면 추가해야 i386아키텍처를하고 3 개 개의 라이브러리 패키지를 설치 libc6:i386, libncurses5:i386libstdc++6:i386:

sudo dpkg --add-architecture i386

또는 Ubuntu 12.04 LTS (Precise Pangolin) 이하를 사용하는 경우 다음을 사용하십시오.

echo "foreign-architecture i386" > /etc/dpkg/dpkg.cfg.d/multiarch

그때:

sudo apt-get update
sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386

실패하면

sudo apt-get install multiarch-support

이 단계 후에 32 비트 응용 프로그램을 실행할 수 있습니다.

./example32bitprogram

답변

바이너리가있을 때 “이러한 파일이나 디렉토리가 없음”이 나타날 수 있지만 일부 라이브러리가 부족합니다. build-essential패키지 를 설치 하면 ldd사용 가능한 명령이 있습니다. 이 명령 ldd ./adb | grep not은 누락 된 라이브러리를 보여줍니다. 이 라이브러리를 a386으로 i386 arch에 설치하십시오. 다음과 같이 : apt-get install libmissing:i386
일부 버그가있는 패키지는 64 비트 버전 전나무를 삭제하려고 시도합니다.


답변

“adb”를 사용하려면 패키지가 있습니다 :

sudo apt-get install android-tools-adb

그리고 약 32 비트 라이브러리-

sudo apt-add-architecture i386

충분할 것입니다.


답변

또한 Zanna와 Avinash Raj의 탁월한 답변에 gcc-multilib도 설치해야했습니다.

sudo apt-get install gcc-multilib

아마도 64 비트에서 이전 gcc 버전을 실행하고 싶었 기 때문일 수 있습니다.