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

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

Barbara Streisand
Barbara Streisandオリジナル
2024-11-15 15:15:03362ブラウズ

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。