시나리오:
다음을 시도하고 있습니다. Ubuntu 시스템에서 Raspberry Pi용 코드를 크로스 컴파일합니다. 그러나 사전 구축된 툴체인을 설치한 후 libstdc 공유 라이브러리를 찾고 툴체인을 편리하게 활용하는 데 문제가 발생합니다.
해결책:
설치하고 사용하려면 크로스 컴파일러 툴체인을 효과적으로 사용하려면 다음을 따르세요. 단계:
전제 조건:
다음 전제 조건 설치:
apt-get install git rsync cmake libc6-i386 lib32z1 lib32stdc++6
도구 체인 설정:
라는 이름의 폴더를 만듭니다. 홈 디렉토리의 raspberrypi:
mkdir ~/raspberrypi
이 폴더로 이동하여 툴체인 저장소를 복제합니다:
cd ~/raspberrypi git clone git://github.com/raspberrypi/tools.git
통합 그만큼 도구 체인:
원하는 도구 체인에 액세스:
export PATH=$PATH:$HOME/raspberrypi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin
터미널 업데이트 또는 세션 다시 시작:
CMake 구성:
CMake 구성 파일 (~/raspberrypi/pi.cmake):
SET(CMAKE_SYSTEM_NAME Linux) SET(CMAKE_SYSTEM_VERSION 1) SET(CMAKE_C_COMPILER $ENV{HOME}/raspberrypi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf-gcc) SET(CMAKE_CXX_COMPILER $ENV{HOME}/raspberrypi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf-g++) SET(CMAKE_FIND_ROOT_PATH $ENV{HOME}/raspberrypi/rootfs) SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
파일 시스템 미러 생성(선택 사항):
rootfs 만들기 폴더:
mkdir ~/raspberrypi/rootfs
Raspberry Pi의 /lib 및 /usr 디렉터리를 ~/raspberrypi/rootfs로 복사합니다.
rsync -rl --delete-after --safe-links [email protected]:/{lib,usr} $HOME/raspberrypi/rootfs
크로스컴파일 CMake:
구성된 툴체인을 사용하여 크로스 컴파일하려면 CMake와 함께 -D CMAKE_TOOLCHAIN_FILE=$HOME/raspberrypi/pi.cmake 플래그를 사용하세요.
예:
라즈베리용 간단한 "Hello World" 프로그램 컴파일 Pi:
"cmake-hello-world" 저장소를 복제합니다:
git clone https://github.com/jameskbride/cmake-hello-world.git
빌드 디렉터리를 만들고 해당 디렉터리로 이동합니다.
cd cmake-hello-world mkdir build cd build
툴체인을 사용하여 CMake 구성 파일:
cmake -D CMAKE_TOOLCHAIN_FILE=$HOME/raspberrypi/pi.cmake ../
프로그램 빌드:
make
실행 파일을 Raspberry Pi로 전송:
scp CMakeHelloWorld [email protected]:/home/pi/
라즈베리에서 프로그램을 실행하세요. Pi:
ssh [email protected] ./CMakeHelloWorld
이러한 단계를 따르면 Raspberry Pi 크로스 컴파일러 툴체인을 성공적으로 설치 및 통합하여 애플리케이션을 편리하게 크로스 컴파일할 수 있습니다.
위 내용은 Ubuntu에서 Raspberry Pi를 크로스 컴파일하는 방법: libstdc를 찾을 수 없는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!