Building and setting up QT environment for BeagleBone
There are too few information available on how to easily setup QT environment for building Beaglebone applications (command line or GUI). In this tutorial we will compile QT and setup the environment from scratch.
1. My environment
- Host: Ubuntu 12.10 32bit (VMplayer)
- Target: BeagleBone Black running Angstrom
- QT: 4.8.5
2. Setup Angstrom cross-compile toolchain for Linux
Download angstrom-2011.03-x86_64-linux-armv7a-linux-gnueabi-toolchain-qte-4.6.3.tar.bz2 for 64bit host or angstrom-2011.03-i686-linux-armv7a-linux-gnueabi-toolchain-qte-4.6.3.tar.bz2 for x86 (or download more recent version at http://www.angstrom-distribution.org/toolchains/). (The Angstrom website is down for 3 weeks – meanwhile you can download the required toolchains from my gdrive –https://googledrive.com/host/0B3Z340LOBulvMG5NRmNlZEppSEE)- Run
$ tar -C / -xjf angstrom-2011.03-i686-linux-armv7a-linux-gnueabi-toolchain-qte-4.6..tar.bz2
3. Download and un-tar QT
$ wget http://download.qt-project.org/official_releases/qt/4.8/4.8.5/qt-everywhere-opensource-src-4.8.5.tar.gz
$ tar -xzf qt-everywhere-opensource-src-4.8..tar.gz
$ mv qt-everywhere-opensource-src-4.8. qt-4.8.-beagle
4. Create qmake.conf
$ cd qt-4.8.-beagle
$ mkdir ./mkspecs/qws/linux-am335x-g++
$ cp ./mkspecs/qws/linux-arm-g++/qplatformdefs.h ./mkspecs/qws/linux-am335x-g++
$ touch ./mkspecs/qws/linux-am335x-g++/qmake.conf
Add the following to qmake.conf with your favorite editor:
#
# qmake configuration for building with arm-linux-g++
# include(../../common/linux.conf)
include(../../common/gcc-base-unix.conf)
include(../../common/g++-unix.conf)
include(../../common/qws.conf) # modifications to g++.conf
#Toolchain #Compiler Flags to take advantage of the ARM architecture
QMAKE_CFLAGS_RELEASE = -O3 -march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp
QMAKE_CXXFLAGS_RELEASE = -O3 -march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp QMAKE_CC = /usr/local/angstrom/arm/arm-angstrom-linux-gnueabi/bin/gcc
QMAKE_CXX = /usr/local/angstrom/arm/arm-angstrom-linux-gnueabi/bin/g++
QMAKE_LINK = /usr/local/angstrom/arm/arm-angstrom-linux-gnueabi/bin/g++
QMAKE_LINK_SHLIB = /usr/local/angstrom/arm/arm-angstrom-linux-gnueabi/bin/g++ # modifications to linux.conf
QMAKE_AR = /usr/local/angstrom/arm/arm-angstrom-linux-gnueabi/bin/ar cqs
QMAKE_OBJCOPY = /usr/local/angstrom/arm/arm-angstrom-linux-gnueabi/bin/objcopy
QMAKE_STRIP = /usr/local/angstrom/arm/arm-angstrom-linux-gnueabi/bin/strip load(qt_config)
5. Configure QT embedded
./configure -v -opensource -confirm-license -prefix /opt/qt -embedded arm -platform qws/linux-x86-g++ -xplatform qws/linux-am335x-g++ -depths 16,24,32 -no-mmx -no-3dnow -no-sse -no-sse2 -no-glib -no-cups -no-largefile -no-accessibility -no-openssl -no-gtkstyle -qt-mouse-pc -qt-mouse-linuxtp -qt-mouse-linuxinput -plugin-mouse-linuxtp -plugin-mouse-pc -fast -little-endian -host-big-endian -no-pch -no-sql-ibase -no-sql-mysql -no-sql-odbc -no-sql-psql -no-sql-sqlite -no-sql-sqlite2 -no-webkit -no-qt3support -nomake examples -nomake demos -nomake docs -nomake translations
6. Build and install
$ make -j
$ sudo make install
“-j 4″ will run the long build process reusing 4 CPU cores, you can change to your own CPU cores amount.
7. Install Qt SDK (lib) we built previously on your board
- Make sure you beaglebone is connected to your host
- ssh to your beagle (ssh root@192.168.7.2)
- Create dir structure from your prefix:
root@beaglebone:/# mkdir /opt
root@beaglebone:/# mkdir /opt/qt - Copy lib from your host to beagle:
$ scp -r /opt/qt/lib root@192.168.7.2:"/opt/qt"
- Add the lib directory to path by editing /etc/profile and adding:
PATH="...:/opt/qt/lib"
8. Download, install and configure QT Creator
- I suggest installing QT Creator using regular installer:
- Download qt-creator-linux-x86-opensource-2.8.0.run for x86 or qt-creator-linux-x86_64-opensource-2.8.0.run for 64bit
chmod +x qt-creator-linux-x86_64-opensource-2.8..run
./qt-creator-linux-x86_64-opensource-2.8..run- Follow installation Wizard
- Run Angstrom toolchain environment setup:
$ . /usr/local/angstrom/arm/environment-setup
- Open Qt Creator and
- Configure Qt version
- Go to Tools->Options->Build & Run->Qt Versions and click Add
- Select qmake.conf from /opt/qt/bin
- Click Ok
- Configure target device connection
- Go to Tools->Options->Devices
- Click Add and select Generic Linux Device
- Add IP 192.168.7.2, User: root
- Set name to “Beaglebone”
- Click Ok
- Configure Compiler
- Go to Tools->Options->Build & Run->Compilers and click Add->GCC
- Select compiler path: /usr/local/angstrom/arm/bin/arm-angstrom-linux-gnueabi-g++
- Click Ok
- Configure Kit
- Go to Tools->Options->Build & Run->Kits and click Add
- Call new kit Beaglebone
- Select device type: “Generic Linux Device”
- Select the device you previously created
- Select compiler you created
- Select Qt version you created
- Select GDK path as /usr/local/angstrom/arm/bin/arm-angstrom-linux-gnueabi-gdk
- Click Ok
9. Build Qt application
- Create new project (File->New project->Qt Project->Qt Console application)
- Edit your project (.pro) file
- Add the following after “TARGET=…” line:
target.files = <YOUR EXECUTABLE NAME>
target.path = /home/root
INSTALLS = target - Go to Projects -> Run, you should see on “Files to deploy” table your “target” settings
- Now you are ready to build and deploy you project on your target board
- The following example application should print Hello world inside your console:
#include <QCoreApplication>
#include <iostream> int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv); std::cout << "hello world" << std::endl; return a.exec();
}
Good luck!
Meir Tseitlin
This entry was posted in Beaglebone, Linux Embedded, QT by Miro. Bookmark the permalink.
71 THOUGHTS ON “BUILDING AND SETTING UP QT ENVIRONMENT FOR BEAGLEBONE”
Building and setting up QT environment for BeagleBone的更多相关文章
- Storm(1) - Setting Up Development Environment
Setting up your development environment 1. download j2se 6 SDK from http://www.oracle.com/technetwor ...
- Qt新安装之后出现Error while building/deploying (kit: Desktop Qt 5.7.0 GCC 64bit) When executing step "Make”
Ubuntu14.04初次安装Qt之后可能出现Error while building/deploying project *** (kit: Desktop Qt 5.7.0 GCC 64bit ...
- [SystemC] Setting Up the Environment
My operating system is Ubuntu 12.04. 0. Checking Your Compilers First thing first, you will need the ...
- Qt.Qt新安装之后出现Error while building/deploying (kit: Desktop Qt 5.7.0 GCC 64bit) When executing step "Make”
出问题的环境: 操作系统: Ubuntu18.04 安装包: qt-opensource-linux-x64-5.8.0.run 现象: 新建一个Hello World项目, 试着运行, 出现以下提示 ...
- Glibc编译报错:*** LD_LIBRARY_PATH shouldn't contain the current directory when*** building glibc. Please change the environment variable
执行glibc编译出错如下图 [root@localhost tmpdir]# ../configure --prefix=/usr/loacl/glibc2.9 --disable-profile ...
- qt-5.6.0 移植之qt源码编译
其实这只是给自己看的一个configure选项笔记,没有太多的东西. 首先: 下载qt5.6的源码: 地址: http://download.qt.io/archive/qt/5.6/ 下载完解压: ...
- How to build a GUI in ROS with Qt / C++
p { margin-bottom: 0.1in; direction: ltr; line-height: 120%; text-align: left; widows: 2; orphans: 2 ...
- Qt Creator编译问题
有时候需要自己编译Qt Creator,需要注意的就是qmake版本的问题,比如我用4.8.1和4.8.6同样编译出来的Qt Creator在同样的qtconfig-qt4下所呈现的效果是不一样的. ...
- This page is about building Firefox Desktop
This page is about building Firefox Desktop The Mozilla build system, like the rest of the Mozilla c ...
随机推荐
- 捉虫记:SHGetSpecialFolderPath返回错误码为2
通常我们想获得系统的一些路径时,都会使用一些Shell函数.比如SHGetSpecialFolderPath,SHGetFolderPath,SHGetKnownFolderPath等,传入我们想要的 ...
- 模拟+二分 poj-1019-Number Sequence
题目链接: http://poj.org/problem?id=1019 题目大意: Sk表示123...k 把S1S2S3...Sk排成一行 比如:112123123412345123456.... ...
- Oracle系列之异常处理
涉及到表的处理请参看原表结构与数据 Oracle建表插数据等等 使用select into语句读取tb_Employee的一行,使用异常处理处理no_data_found和two_many_rows ...
- bzoj1443
首先要思考的问题肯定是,什么点可以是ans, 不难想到对图黑白染色,假如一个棋子不管怎么走,都只能走到和它同色的点上时,这就是一个ans 再考虑,每次棋子的移动都是黑白相间的 再考虑,黑白染色是可以构 ...
- Nagios ’status.cgi‘文件权限许可和访问控制漏洞
漏洞名称: Nagios ’status.cgi‘文件权限许可和访问控制漏洞 CNNVD编号: CNNVD-201307-013 发布时间: 2014-02-21 更新时间: 2014-02-21 危 ...
- [转]ASP.NET MVC 入门4、Controller与Action
Controller是MVC中比较重要的一部分.几乎所有的业务逻辑都是在这里进行处理的,并且从Model中取出数据.在ASP.NET MVC Preview5中,将原来的Controller类一分为二 ...
- iframe 处理
import java.io.File; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org ...
- mac 卸载 XCode
http://blog.csdn.net/songques/article/details/7244144
- Spark常见错误汇总
1. Spark Driver cannot bind on port0, SparkContext initialized failed 如果是通过spark-submit等命令行提交的任务,在sp ...
- HDU 4622 Reincarnation(SAM)
Problem Description Now you are back,and have a task to do:Given you a string s consist of lower-cas ...