2014-10-01 232 views
0

我正在交叉編譯Qt應用程序。我的主機是Ubuntu系統,目標是基於buildroot的文件系統的ARM板,我正在使用Qt 5.3.1。當我試圖運行make,我得到以下錯誤:qmake在絕對路徑中搜索庫

/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應用程序正在我的主機和目標上運行

回答

2

在output/host/usr/bin中使用buildroot構建的qmake。這一個具有預先配置的正確路徑。如果它仍然無效,請在Buildroot bug跟蹤器中提交一個錯誤報告,用一個簡單的測試用例來重現問題,以及重現它的步驟列表。

+0

它構建了一切如此之快,我懷疑它。在Makefile中工作就像一個魅力 – Hamzahfrq 2014-10-02 11:33:57

+0

_LFLAGS = --sysroot = paht/to/ur/sysroot_這是我一直在尋找的!我仍然不知道它在qmake.conf中指定的位置,但編譯工作 – Hamzahfrq 2014-10-02 11:43:25