【发布时间】:2014-10-01 13:37:15
【问题描述】:
我正在交叉编译一个 Qt 应用程序。我的主机是 Ubuntu 系统,目标是带有基于 buildroot 的文件系统的 ARM 板,我使用的是 Qt 5.3.1。当我尝试运行 make 时,出现以下错误:
/home/hamzah/vibrante/toolchains/tegra-4.8.1-nv/usr/bin/armv7a-vfpv3-cortex_a15-linux-gnueabi/../../libexec/armv7a-vfpv3-cortex_a15-linux-gnueabi/gcc/arm-cortex_a15-linux-gnueabi/4.8.1/ld: cannot find /lib/libpthread.so.0
/home/hamzah/vibrante/toolchains/tegra-4.8.1-nv/usr/bin/armv7a-vfpv3-cortex_a15-linux-gnueabi/../../libexec/armv7a-vfpv3-cortex_a15-linux-gnueabi/gcc/arm-cortex_a15-linux-gnueabi/4.8.1/ld: cannot find /usr/lib/libpthread_nonshared.a
collect2: error: ld returned 1 exit status
如您所见,它在目标中为libpthread.so.0 和libpthread_nonshared.a 使用绝对路径。该库放置在我的主机上托管的目标文件系统中。使用QMAKE_LIBDIR变量在qmake.conf中添加了目标库搜索路径:
QMAKE_LIBDIR += /home/hamzah/buildroot/output/host/usr/arm-buildroot-linux-gnueabihf/sysroot
QMAKE_LIBDIR += /home/hamzah/buildroot/output/host/usr/arm-buildroot-linux-gueabihf/sysroot/usr/lib
我需要知道如何使ld 能够使用sysroot 变量或任何其他方法找到这个库。
PS:我正在编译 Qt 应用程序。预构建的 Qt 应用程序正在我的主机和目标上运行
【问题讨论】:
标签: qt arm cross-compiling ld buildroot