C++ 查找以查找库

C++ 查找以查找库,c++,build-process,ld,C++,Build Process,Ld,我正在交叉编译一个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-

我正在交叉编译一个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库之外,子make文件中的命令还使用-l开关链接到以下库:-lpng-lz-lX11-lXtst-lpthread-Wl。所有库(libpng、libz、libX11等)都在我的主机/usr/lib/目录中,但我的目标工具链没有这些库。我的问题是,如果我用我的目标编译器手动重新编译库,这会解决我的问题吗?或者,我将为我的目标平台的每个库查找并安装软件包


提前谢谢

您似乎是为目标编译的,因此需要目标库。由您自己编译或由工具链开发环境(如果您有)提供。后者通常会为您节省一些麻烦(交叉编译和在必要时设置路径)


我看到您正在使用openwrt工具链。Openwrt似乎将libpng作为一个包。如果可能的话,我会同意的。

可能吧。但是重新编译X11并不是一项简单的任务。您需要为您的目标体系结构编译所有依赖项。谢谢!我将搜索lib包。