Qt for Embedded Linux Pre-requisites

From Qt Wiki
Revision as of 16:49, 3 March 2015 by AutoSpider (talk | contribs) (Add "cleanup" tag)
Jump to navigation Jump to search
This article may require cleanup to meet the Qt Wiki's quality standards. Reason: Auto-imported from ExpressionEngine.
Please improve this article if you can. Remove the {{cleanup}} tag and add this page to Updated pages list after it's clean.

[toc align_right="yes" depth="2"]

Under construction

Introduction

Before we can build and use Qt for Embedded Linux we need some tools to help us along our way. This article helps you on the way to getting a cross-compiling tool chain set up. Although not directly relevant to using Qt it is an essential part of being able to build and deploy Qt and your application onto your device.

If your device already provides you with an SDK that contains a working cross-compiling tool chain then you can skip this article. However, it will still give you some insight into how to create such a tool chain should you ever find yourself in need of one.

For this example of rolling our own cross-compiling tool chain we shall base our configuration on something suitable for a board based on an AMD Geode chipset. The Geode CPU is essentially a 32-bit x86 processor. Although advertised as being "mostly i586" compatible, it lacks support for a few i586 instructions and so we will fall back to the next best option which is to create a toolchain that creates code for an i486 instruction set. I believe that GCC does now actually have a specific option for generating code for the Geode chips but I have not tested that so I will stick with 486 for this example.

NB. When I tried using an i586 cross-compiling tool chain on an AMD Geode board, most things would work but I would see random crashes from bash or other common utilities. It turns out that this happens when the code tries to execute one of those unsupported i586 instructions. So if you see something similar, then be sure to check your CPU actually matches your toolchain!

If you are following along with this example to make a cross-toolchain for your own board then obviously you will need to substitute in more suitable options where needed.