ZynqにあるArm Cortex A9プロセッサで実行するyoctoプロジェクトに基づいてカスタムイメージを作成しました。自分のアプリケーションをLinuxマシンのクロスコンパイラでコンパイルして、Armで実行しようとしています。しかし、libstdC++ 6ライブラリが見つからないというエラーが表示されます。このライブラリは本当に私のイメージに含まれていません。手動でlibstdC++。so.6を/ libフォルダにコピーすると、正常に実行されます。したがって、私はそのライブラリ自体を含むように自分のイメージを構築したいと思っています。yoctoイメージに標準ライブラリを追加する正しい方法は何ですか
DESCRIPTION = "Copy necessary lib files to rootfs/lib directory"
LICENSE = "CLOSED"
PACKAGE_ARCH = "all"
SRC_URI += " \
file://libstdc++.so.6 \
file://libstdc++.so.6.0.22 \
"
do_install() {
install -d ${D}${base_libdir}/
install -m 755 ${WORKDIR}/libstdc++.so.6 ${D}${base_libdir}/
install -m 755 ${WORKDIR}/libstdc++.so.6.0.22 ${D}${base_libdir}/
}
FILES_${PN} += " \
${base_libdir}/libstdc++.so.6 \
${base_libdir}/libstdc++.so.6.22 \
"
のようなレシピを作成しようとしましたが、これらのライブラリが既に共有領域に存在するというエラーが表示されます。しかし、私はどのように共有されているから/ libディレクトリに画像をコピーするかを把握することはできません。ここにエラーがあります:
ERROR: my-recipe-1.0-r0 do_packagedata: The recipe my-recipe is trying to install files into a shared area when those files already exist. Those files and their manifest location are:
/home/myUser/REPOS/my-platform/build/tmp-glibc/sysroots/my-board-xc7z030/pkgdata/runtime-reverse/libstdc++6 Matched in b'manifest-my-board-xc7z030-gcc-runtime.packagedata' /home/myUser/REPOS/my-platform/build/tmp-glibc/sysroots/my-board-xc7z030/pkgdata/runtime-reverse/libstdc++-dev Matched in b'manifest-my-board-xc7z030-gcc-runtime.packagedata' Please verify which recipe should provide the above files.
画像に標準ライブラリを入れる正しい方法は何ですか?
ありがとうございます!
あなたの答えは@アンダーに感謝します、私は画像の中に自分のアプリケーションを入れようとは考えていませんでしたが、ほぼ必見です。ライブラリを手動でコピーするなど、変わったことをする必要があります。アプリケーションのレシピを追加しました。解決しました。 –