ホームページ > バックエンド開発 > C++ > Ubuntu で Raspberry Pi 用にクロスコンパイルする方法: libstdc が見つからないのはなぜですか?

Ubuntu で Raspberry Pi 用にクロスコンパイルする方法: libstdc が見つからないのはなぜですか?

Barbara Streisand
リリース: 2024-11-15 15:15:03
オリジナル
311 人が閲覧しました

How to Cross-Compile for Raspberry Pi on Ubuntu:  Why Can't I Find libstdc  ?

Raspberry Pi のホストにクロスコンパイラ ツールチェーンをインストールする方法

シナリオ:

Ubuntu マシン上で Raspberry Pi 用のコードをクロスコンパイルします。ただし、事前に構築されたツールチェーンをインストールした後、libstdc 共有ライブラリを見つけたり、ツールチェーンを便利に利用したりするときに問題が発生します。

解決策:

クロスコンパイラ ツールチェーンを効果的に使用するには、以下に従ってください手順:

前提条件:

次の前提条件をインストールします:

apt-get install git rsync cmake libc6-i386 lib32z1 lib32stdc++6
ログイン後にコピー

ツールチェーン:

  1. ホーム ディレクトリに raspberrypi という名前のフォルダーを作成します:

    mkdir ~/raspberrypi
    ログイン後にコピー
  2. このフォルダーに移動し、ツールチェーンのクローンを作成します。リポジトリ:

    cd ~/raspberrypi
    git clone git://github.com/raspberrypi/tools.git
    ログイン後にコピー

ツールチェーンの統合:

  1. 目的のツールチェーンへのアクセス:

    export PATH=$PATH:$HOME/raspberrypi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin
    ログイン後にコピー
  2. 端末を更新するか、セッションを再起動します:

    • ログアウトして再度ログインします。
    • を実行します。ターミナルで ~/.bashrc を実行して PATH を更新します。

CMake の構成:

  1. 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)
    ログイン後にコピー

ファイル システム ミラーの作成 (オプション):

  1. rootfs を作成するフォルダー:

    mkdir ~/raspberrypi/rootfs
    ログイン後にコピー
  2. 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:

  1. 「cmake-hello-world」リポジトリのクローンを作成します:

    git clone https://github.com/jameskbride/cmake-hello-world.git 
    ログイン後にコピー
  2. ビルド ディレクトリを作成し、次の場所に移動しますそれ:

    cd cmake-hello-world
    mkdir build
    cd build
    ログイン後にコピー
  3. ツールチェーン ファイルを使用して CMake を構成します:

    cmake -D CMAKE_TOOLCHAIN_FILE=$HOME/raspberrypi/pi.cmake ../
    ログイン後にコピー
  4. プログラムをビルドします:

    make
    ログイン後にコピー
  5. 実行可能ファイルを Raspberry に転送しますPi:

    scp CMakeHelloWorld [email protected]:/home/pi/
    ログイン後にコピー
  6. Raspberry Pi でプログラムを実行します:

    ssh [email protected] ./CMakeHelloWorld
    ログイン後にコピー

これらの手順に従うと、正常にインストールされます。また、Raspberry Pi クロスコンパイラー ツールチェーンを統合し、アプリケーションを簡単にクロスコンパイルできるようにしました。

以上がUbuntu で Raspberry Pi 用にクロスコンパイルする方法: libstdc が見つからないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート