我正在尝试将Qt与WebKit交叉编译为嵌入式arm设备(freescale处理器)。我有一个arm-none-linux-gnueabi工具链。
Qt实际编译了,但是我在尝试编译演示时遇到了问题,特别是WebKit演示,这正是我所追求的。
我遇到的第一个问题是找不到libjscore,这是由于Qt处理静态构建的方式而导致的错误。事实证明,您可以复制该库并且它可以正常工作,请参阅here。
现在编译再次破解说它找不到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 遵循此fix。
非常感谢任何帮助或建议。我已经把头撞在墙上两天了。
由于
答案 0 :(得分:1)
通常,您应确保您构建的工具链(或为您构建的工具链)与构建它的路径完全相同。库(* .so * .a)也应该位于相同的原始路径中。它应该是这样的:
<path>/bin
<path>/usr/lib
<path>/lib
不应移动这些文件夹。工具链可执行文件位于“bin”中,它查找的库位于“../usr/lib和../lib”中。此外,<path>
可能会以某种方式硬编码到您的gcc二进制文件中。移动它似乎打破了局面。
答案 1 :(得分:-1)
目标是树莓PI 我将目标lib目录复制到myuserdirectory 将/ usr / lib定位到我的crosscompiler / usr / lib / directorie target / lib my crosscompiler / lib / directorie
我创建了两个符号链接:
ln -s /yourcrosscompilerusrlibdirectory /usr/lib/arm-linux-gnueabihf
ln -s /yourcrosscompilerusrdirectory /lib/arm-linux-gnueabihf
它对我有用
libpthread位于/yourcrosscompilerusrlibdirectory