我正在交叉编译到arm嵌入式系统并收到我有疑问的错误。这是错误:
[ 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。之外,sub-make文件中的命令使用-l开关链接到以下库:-lpng -lz -lX11 -lXtst -lpthread -Wl。所有库(libpng,libz,libX11等)都在我的主机/ usr / lib /目录中,但我的目标工具链没有库。我的问题是,如果我用我的目标编译器手动重新编译库将解决我的问题?或者我将为我的目标平台找到并安装每个库的软件包。
提前致谢。
答案 0 :(得分:0)
您似乎为目标编译,因此您需要目标库。由您自己编译或由工具链开发环境提供(如果您有)。后者通常可以为您节省一些麻烦(交叉编译并在必要时设置路径)。
我看到你正在使用openwrt工具链。 Openwrt似乎将libpng作为一个包。如果可能的话,我会选择。