2017-05-10 1 views
0

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.

画像に標準ライブラリを入れる正しい方法は何ですか?

ありがとうございます!

答えて

0

ライブラリを明示的に追加する必要はありません。イメージをリンクするアプリケーションを持っている場合は、少なくともライブラリを追加する必要はありません。

代わりに、C++アプリケーションのレシピを作成してください。 libstdc++.so.6の場合、この実行時依存関係は自動的に検出されます。

別のライブラリであれば、時間依存性を構築するためのレシピを追加する必要があります。DEPENDS;ランタイム部分は引き続き自動的に処理されます。

更新:

あなたが任意のC++アプリケーションを追加することなく、自分のイメージにlibstdc++.so.6を追加したい場合は、ちょうど追加

IMAGE_INSTALL_append = " libstdc++6" 
+0

あなたの答えは@アンダーに感謝します、私は画像の中に自分のアプリケーションを入れようとは考えていませんでしたが、ほぼ必見です。ライブラリを手動でコピーするなど、変わったことをする必要があります。アプリケーションのレシピを追加しました。解決しました。 –

関連する問題