0

アーム組み込みシステムにクロスコンパイルしていて、質問があるエラーを受け取りました。エラーは次のとおりです。

[ 19%] Built target cxjpeg-6b
Linking CXX shared library /home/botbear/JAUS++-2.110519-   src/libraries/jaus++/2.0/lib/libcxutils.so
/home/botbear/openwrt/trunk/staging_dir/toolchain-arm_v6k_gcc-linaro_uClibc-    0.9.32_eabi/lib/gcc/arm-openwrt-linux-uclibcgnueabi/4.5.4/../../../../arm-openwrt-linux-    uclibcgnueabi/bin/ld: cannot find -lpng 
collect2: ld returned 1 exit status
make[2]: *** [/home/botbear/JAUS++-2.110519-src/libraries/jaus++/2.0/lib/libcxutils.so]     Error 1
make[1]: *** [libcxutils/CxUtils/libcxutils/CMakeFiles/cxutils.dir/all] Error 2
make: *** [all] Error 2

ご覧のとおり、リンカーは「libpng」という名前の静的ライブラリを探しています。libpng lib。に加えて、-lスイッチを使用してsub-makeファイル内のコマンドを使用して次のライブラリにリンクします:-lpng -lz -lX11 -lXtst-lpthread-Wl。すべてのライブラリ(libpng、libz、libX11など)はホストの/ usr / lib /ディレクトリにありますが、ターゲットツールチェーンにはライブラリがありません。私の質問は、ターゲットコンパイラを使用してライブラリを手動で再コンパイルした場合、問題は解決しますか?または、ターゲットプラットフォームの各ライブラリのパッケージを見つけてインストールします。

前もって感謝します。

4

1 に答える 1

0

ターゲット用にコンパイルしているように見えるので、ターゲットライブラリが必要です。自分でコンパイルするか、ツールチェーン開発環境(ある場合)によって提供されます。後者は通常、いくつかの頭痛の種を節約します(必要に応じてクロスコンパイルとパスの設定)。

openwrtツールチェーンを使用しているようです。Openwrtにはlibpngがパッケージとして含まれているようです。できればそれで行きます。

于 2012-05-13T15:38:02.087 に答える