2012-05-13 34 views
0

我正在交叉編譯爲arm嵌入式系統並收到我有疑問的錯誤。這裏是錯誤:ld查找以查找庫

[ 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之外,子make文件中的命令使用-l開關鏈接到以​​下庫:-lpng -lz -lX11 -lXtst -lpthread -Wl。所有庫(libpng,libz,libX11等)都在我的主機/ usr/lib /目錄中,但我的目標工具鏈沒有這些庫。我的問題是,如果我手動重新編譯我的目標編譯器庫將解決我的問題?或者我將爲我的目標平臺找到並安裝每個庫的軟件包。

在此先感謝。

+0

。但重新編譯X11並不是一項簡單的任務。 –

+0

您需要爲您的目標架構編譯所有依賴項。 – juanchopanza

回答

0

你似乎爲目標編譯,所以你需要目標庫。要麼由你自己編譯,要麼由工具鏈開發環境提供(如果你有的話)。後者通常會爲您節省一些麻煩(必要時交叉編譯和設置路徑)。

我看到你正在使用openwrt工具鏈。 Openwrt似乎將libpng作爲一個包裝。如果可能的話,我會盡力去做。可能是

+0

謝謝!我將搜索lib包。 –