シナリオ:
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」プログラムをコンパイルします。 Raspberry 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/
Raspberry Pi でプログラムを実行します:
ssh [email protected] ./CMakeHelloWorld
これらの手順に従うと、正常にインストールされます。また、Raspberry Pi クロスコンパイラー ツールチェーンを統合し、アプリケーションを簡単にクロスコンパイルできるようにしました。
以上がUbuntu で Raspberry Pi 用にクロスコンパイルする方法: libstdc が見つからないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。