[英]cannot find crt1.o /crti.o /libpthread.so.0 after Raspi cross compiled with Qt
[英]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.