我正在尝试为WebKit为嵌入式arm设备(freescale处理器)交叉编译Qt。我有一个arm-none-linux-gnueabi工具链。交叉编译Qt for Embedded Arm:找不到libpthread.so.0
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。
任何帮助或建议,非常感谢。现在我已经把头撞在墙上两天了。
感谢
你似乎有图书馆。通常如果存在多个共享库(.so),则它们被命名为 - somelib.so.1,somelib.so.2,其中有时后缀to .so也可能是版本名称。所以我会说从libpthread.so.0创建一个sym链接到libpthread.so或libpthread.so_orig或libpthread-2.5.so,它可能都会工作,否则只是链接到最新的libpthread。 – Abhijith 2011-05-13 14:25:55
@abhijith - 谢谢你的回复。我添加了一个从libpthread.so.0到libpthread-2.5.so的符号链接,现在链接器断开了其他内容。我收到错误:'arm-none-linux-gnueabi/bin/ld:找不到-lgcc_s'。工具链目录树中的某处有一个libgcc_s。有任何想法吗? – 2011-05-13 15:27:58
它是不够的,如果它是'某处',它必须在您的工具链的搜索路径。您可以使用-L选项将搜索路径/目录添加到链接器。例如,如果你想链接器在/ usr/local/mydir目录中搜索任何库文件,你可以将这个选项提供给链接器-L/usr/local/mydir – Abhijith 2011-05-13 15:39:19