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:i386
및 libstdc++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 버전을 실행하고 싶었 기 때문일 수 있습니다.