簡體   English   中英

嵌入式Arm的交叉編譯Qt:找不到libpthread.so.0

[英]Cross Compiling Qt for Embedded Arm: libpthread.so.0 not found

我正在嘗試將WebKit與Qt進行交叉編譯,以用於嵌入式Arm設備(飛思卡爾處理器)。 我有一個arm-none-linux-gnueabi工具鏈。

Qt實際上已經編譯了,但是在嘗試編譯演示時,尤其是WebKit演示時,我遇到了問題,這正是我所追求的。

我遇到的第一個問題是找不到libjscore,這是由於Qt處理靜態構建的方式而導致的錯誤。 原來您可以復制該庫並且它可以正常工作,請參見此處

現在編譯再次中斷,表明找不到libpthread.so.0,這似乎是一個工具鏈問題,而不是Qt問題。

在我的工具鏈中搜索目錄樹,有幾個libpthreads。 查找副本| grep libpthread命令的輸出如下,以供參考。

./arm-none-linux-gnueabi/sysroot/vfp/lib/libpthread-2.5.so
./arm-none-linux-gnueabi/sysroot/vfp/usr/lib/libpthread_nonshared.a
./arm-none-linux-gnueabi/sysroot/vfp/usr/lib/libpthread.a
./arm-none-linux-gnueabi/sysroot/vfp/usr/lib/libpthread.so_orig
./arm-none-linux-gnueabi/sysroot/vfp/usr/lib/libpthread.so
./arm-none-linux-gnueabi/sysroot/lib/libpthread-2.5.so
./arm-none-linux-gnueabi/sysroot/usr/lib/libpthread_nonshared.a
./arm-none-linux-gnueabi/sysroot/usr/lib/libpthread.a
./arm-none-linux-gnueabi/sysroot/usr/lib/libpthread.so_orig
./arm-none-linux-gnueabi/sysroot/usr/lib/libpthread.so

看來鏈接器有些奇怪嗎? 另外,創建libpthread.so.0需要鏈接什么?

注意:_libpthread.so_orig_和libpthread.so遵循此修復程序

任何幫助或建議,不勝感激。 我已經將頭撞牆了兩天了。

謝謝

通常,您應確保所構建(或已為您構建)的工具鏈與構建時所用的路徑完全相同。 庫(* .so * .a)也應位於相同的原始路徑中。 它看起來應該像這樣:

<path>/bin
<path>/usr/lib
<path>/lib

這些文件夾不應移動。 工具鏈可執行文件位於“ bin”中,而其查找的庫位於“ ../usr/lib和../lib”中。 同樣, <path>可能以某種方式被硬編碼到您的gcc二進制文件中。 移動它似乎會破壞事情。

目標是樹莓派PI,我將目標庫目錄復制到myuser目錄中將目標/ usr / lib復制到我的交叉編譯器/ usr / lib / Directorie目標/ lib我的交叉編譯器/ lib / Directorie

我創建兩個符號鏈接:

ln -s /yourcrosscompilerusrlibdirectory /usr/lib/arm-linux-gnueabihf
ln -s /yourcrosscompilerusrdirectory /lib/arm-linux-gnueabihf

對我來說它是工作的libpthread在/yourcrosscompilerusrlibdirectory

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM