交叉编译嵌入式臂的Qt:libpthread.so.0未找到



我正在尝试将Qt与WebKit交叉编译,用于嵌入式ARM设备(飞思卡尔处理器)。我有一个arm-none-linux-gnueabi工具链。

Qt实际上已经编译了,但是我在尝试编译演示时遇到了问题,尤其是WebKit演示,这确实是我所追求的。

我遇到的第一个问题是找不到libjscore,这是由于Qt处理静态构建的方式造成的错误。 事实证明,您可以复制库并且可以工作,请参阅此处。

现在编译再次中断,说它找不到libpthread.so.0,这似乎是一个工具链问题而不是Qt问题。

在我的工具链中搜索目录树,有几个 libpthread。 下面是 find | 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 二进制文件中。 移动它似乎会破坏东西。

目标是树莓派我将目标库目录复制到我的用户目录目标/usr/lib 到我的交叉编译器/usr/lib/directorietarget/lib my crosscompiler/lib/directorie

我创建了两个符号链接:

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

这对我来说是工作libpthread在/yourcrosscompilerusrlibdirectory

相关内容

  • 没有找到相关文章

最新更新