从Linux到嵌入式Linux的集成/移植Qt

时间:2011-08-30 01:32:21

标签: linux qt shared-libraries porting

我正在尝试将我的Qt代码从Linux移植到嵌入式Linux。现在我看了网上,我看到了关于如何部署到嵌入式linux / linux上的文档: http://doc.qt.io/archives/qt-4.7/deployment-x11.html

所以现在我使用共享库方法,因为我认为这将给我最大的灵活性,而且似乎使用最新的QtSDK我无法静态部署我的应用程序。我按照说明中提到的所有步骤操作,我没有插件。因此,当我完成这些步骤时,我将所有代码和依赖库移植到某个目录:/ tmp / MyFolder ....我使用ldd -v Application.exe确定需要移植的库。所以现在问题是当我将库移植到嵌入式linux盒子时,我注意到其中一些库已经存在于/ usr / lib和/ lib等目录中。因此,当我运行我的代码时,我编写了一个shell脚本来修改LD_LIBRARY_PATH环境变量,以检查这些目录以及我自己的相应库目录。现在,当我在嵌入式Linux机器上运行我的代码时,我收到错误:

加载共享库时出错:/tmp/ftproot/RenderingEngine/./libm.so.6:ELF文件OS ABI无效。

我试过谷歌搜索错误,但我仍然不知道这个错误意味着什么,以及如何解决它。问题是库libm.so.6位于/ usr / lib目录和我的自定义目录中。但是,我设置LD_LIBRARY_PATH的方式首先检查我的自定义目录。有人可以帮我这个吗?

1 个答案:

答案 0 :(得分:0)

ELF错误表示您已链接到系统的二进制格式不兼容的库。您应该只链接到为目标操作系统编译的库(在这种情况下,无论什么版本的嵌入式Linux)。

尝试重新编译代码并链接到系统中已存在的库(即/usr/lib)。