我正在交叉编译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.conf
变量
QMAKE_LIBDIR
中添加了目标库搜索路径
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应用程序在我的主机和目标
上运行答案 0 :(得分:2)
在output / host / usr / bin中使用Buildroot构建的qmake。这个具有预先配置的正确路径。如果它仍然无法正常工作,请在Buildroot错误跟踪器中提交错误报告,并提供一个简单的测试用例来重现问题,以及重现问题的步骤列表。