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 ...
随机推荐
- 49. 面向对象的LotusScript(十五)之Log4Dom下
Log4Dom是模仿Log4J的思想建立的.Log4J能够向多种记录媒介以统一的格式写入各种级别的日志信息(包括错误.调试和信息等),还可以籍配置文件在运行时方便地修改记入日志的级别.Log4Dom提 ...
- 存储过程系列之调试存储过程 SQL Server 2005
在数据库中直接调试 在数据库中直接调试是调试SQL Server 2005的存储过程的最简单的方法. 在Visual Stuido的IDE中你可以选择单步执行存储过程,然后就可以一条语句一条语句地单 ...
- hihocoder #1290 : Demo Day (2016微软编程测试第三题)
#1290 : Demo Day 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 You work as an intern at a robotics startup. ...
- jquery图片轮播插件slideBox
效果预览: 源代码下载: jQuery图片轮播(焦点图)插件jquery.slideBox 特点:兼容IE6+,Chrome,Firefox,Opera,safari,可左右,可上下,可快可慢,可指定 ...
- iPhone, Android等设备上的Touch和Gesture
现在,为智能触摸手机创建直观的用户界面时,最重要的部分不再是单纯的视觉效果,而是要创建出能很好地处理用户触摸交互的界面.对于Web应用而言,这意味着使用touch事件来取代传统的mouse事件.在Do ...
- VC一些经验系列: 《分享泄漏检测工具:内存、DC、GDI、Handle... 》
分享下自己工作中用到的一些用于泄漏检测的工具 后面的是DC的一些定义和注意事项.(不喜勿看) //=================================================== ...
- JSP---演示ErroPage、isErroPage和jsp:forword标签
属性说明: language – 示例:language="java" import -如: (注意多个引用之间使用逗号分开.) <%@ page import=" ...
- openstack 镜像自动扩容 resize拉伸
The simplest way to support this in your image is to install the cloud-utils package (contains the g ...
- puppet案例
实例一.文件分发描述:通过puppet服务端可以向被管理机(客户端)上推送文件,方法是使用file类型的source属性 第一步:#vi /etc/puppet/fileserver.conf 1 ...
- MySQL开发中常用的查询语句总结
1.查询数值型数据: SELECT * FROM tb_name WHERE sum > 100; 查询谓词:>,=,<,<>,!=,!>,!<,=>, ...