【问题标题】:qmake searching for library in absolute pathqmake在绝对路径中搜索库
【发布时间】: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.0libpthread_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


    【解决方案1】:

    在 output/host/usr/bin 中使用 Buildroot 构建的 qmake。这个已经预先配置了正确的路径。如果还是不行,请在 Buildroot 错误跟踪器中提交错误报告,并附上重现问题的简单测试用例,以及重现问题的步骤列表。

    【讨论】:

    • 它构建一切的速度如此之快,以至于我对此表示怀疑。像魅力一样工作
    • LFLAGS = --sysroot=paht/to/ur/sysroot 在 Makefile 中,这就是我要找的!!我仍然不知道它在 qmake.conf 中指定的位置,但是编译可以使用它
    猜你喜欢
    • 2013-10-08
    • 2011-05-06
    • 1970-01-01
    • 1970-01-01
    • 2018-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多