针对树莓派的交叉编译QT应用程序 - 无法打开共享对象文件

时间:2012-10-11 21:50:26

标签: c++ qt shared-libraries cross-compiling raspberry-pi

我希望能够在我的全尺寸桌面上使用QT Creator,以便能够开发和编译qt应用程序并将它们部署到pi。

我遵循了这个指南:http://qt-project.org/wiki/Create#QtonPi_App_SDK

我正在尝试编译hello-qtonpi项目。使用编译器和pi的工具链,我在编译期间遇到两个错误:

/opt/qtonpi/lib/gcc/armv5tel-qtonpi-linux-gnueabi/4.5.4/../../../../armv5tel-qtonpi-linux-gnueabi/bin/as: error while loading shared libraries: libz.so.1: cannot open shared object file: No such file or directory
/opt/qtonpi/libexec/gcc/armv5tel-qtonpi-linux-gnueabi/4.5.4/cc1plus: error while loading shared libraries: libmpc.so.2: cannot open shared object file: No such file or directory

我检查过这两个库是安装在我的pi上的,rsynced / lib和/ usr / lib是从pi到我的sys-root文件夹。

我尝试使用QT Creators添加库 - >系统库工具,并选择例如libz.so,因为它没有显示so.1。它将以下行添加到.pro文件中:

unix:!macx:!symbian: LIBS += -lz

然而它仍然没有摆脱错误。

我应该如何包含这些库或告诉编译器从哪里查看?

1 个答案:

答案 0 :(得分:1)

有关libz和libmpc的错误消息都与缺少的目标库无关,但与主机部分无关。

您的交叉编译工具链已构建为动态链接,因此您需要在主机上拥有解决依赖关系的所有库。

由于libz.so.1很常见,可能你运行的是64位主机,但是你的工具链是为32位构建的。在这种情况下,您需要找到提供32位版本的libz.so.1和libmpc.so.2的软件包。