首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从64位Linux交叉编译特定arm目标的Qt

从64位Linux交叉编译特定arm目标的Qt
EN

Stack Overflow用户
提问于 2017-09-20 23:30:07
回答 1查看 894关注 0票数 1

我目前正在尝试编译一个项目,并将其移植到一个部署基于Linux的系统的32位目标。

我的主机运行x86_64 Debian Stretch,我的目标是运行定制Linux的Atmel SAMA5d2。我的交叉工具链是从buildroot生成的。

目前,我可以使用buildroot生成的工具链为目标交叉编译应用程序。然而,我想集成Qt并为目标构建Qt应用程序。

为了能够为目标平台构建我的应用程序,我需要为我的目标编译Qt。为此,我必须告诉Qt使用buildroot工具链而不是本机工具链。

从我发现的情况来看,我必须提供-device <device> --device-option CROSS_COMPILE=$TOOLCHAIN_PATH-xplatform <mkspec>来使用预期的工具链配置Qt。

显然,我的目标不在qtbase/mkspecs/devices下的设备列表中,所以我认为最好的解决方案是为我的目标创建一个mkspec。

我的命令应该是这样的:

代码语言:javascript
复制
./configure -xplatform <my_mkspec> -embedded arm -prefix <customQtPath>

然而,我有点迷路了,我不知道怎么做,只从文档和我通过谷歌搜索我的问题找到了什么。

另外,我是否需要指定目标是32位,因为armv7只有32位?

我很高兴在这方面能得到一些帮助。谢谢。

EN

回答 1

Stack Overflow用户

发布于 2017-09-21 00:14:43

你的假设是正确的。您可以阅读类似的规范并创建自己的规范,这些都非常简单。例如Pi2是一个armv7设备,你可以从this qmake.conf开始。然后,传递到configure:

代码语言:javascript
复制
-device <given_name> -device-option CROSS_COMPILE=<path_and_prefix> -sysroot <your_sysroot>

只需更改路径,在需要时调优cflag等。然后按照构建教程进行操作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46326172

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档