host: ubuntu14.04
在ubuntu的软件中心就可以安装Qt
这里点安装, 就能自动安装好Qt的开发环境,包括qtcreator也安装好了, 开箱即用, 不过这个开发的是pc上的软件, 所以我们接下来还要弄一个嵌入式的版本. 只需要在qtcreator中添加一个kit就可以了非常方便
1. 首先下载代码
我用的是 qt-everywhere-opensource-src-4.8.6.tar.gz
tar -zxvf qt-everywhere-opensource-src-4.8.6.tar.gz
解压代码之后,进入源码目录
cd qt-everywhere-opensource-src-4.8.6
创建一个新的文件夹来存放我们的文件
cd mkspecs; cd qws; mkdir linux-am335x-g++
然后拷贝头文件到我们的文件夹
cp linux-arm-g++/qplatformdefs.h linux-am335x-g++
下一步就是新建我们的配置文件qmake.conf
cd linux-am335x-g++; vi qmake.conf
配置如下:
# qmake configuration for building for Beaglebone Black
#
include(../../common/linux.conf)
include(../../common/gcc-base-unix.conf)
include(../../common/g++-unix.conf)
include(../../common/qws.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=hard
QMAKE_CXXFLAGS_RELEASE = -O3 -march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=hard
#这里要根据自己的编译链的位置来填写
QMAKE_CC = /opt/ti-processor-sdk-linux-am335x-evm-01.00.00.00/linux-devkit/sysroots/i686-arago-linux/usr/bin/arm-linux-gnueabihf-gcc -lts
QMAKE_CXX = /opt/ti-processor-sdk-linux-am335x-evm-01.00.00.00/linux-devkit/sysroots/i686-arago-linux/usr/bin/arm-linux-gnueabihf-g++ -lts
QMAKE_LINK = /opt/ti-processor-sdk-linux-am335x-evm-01.00.00.00/linux-devkit/sysroots/i686-arago-linux/usr/bin/arm-linux-gnueabihf-g++ -lts
QMAKE_LINK_SHLIB =/opt/ti-processor-sdk-linux-am335x-evm-01.00.00.00/linux-devkit/sysroots/i686-arago-linux/usr/bin/arm-linux-gnueabihf-g++ -lts
# modifications to linux.conf
QMAKE_AR = /opt/ti-processor-sdk-linux-am335x-evm-01.00.00.00/linux-devkit/sysroots/i686-arago-linux/usr/bin/arm-linux-gnueabihf-ar cqs
QMAKE_OBJCOPY = /opt/ti-processor-sdk-linux-am335x-evm-01.00.00.00/linux-devkit/sysroots/i686-arago-linux/usr/bin/arm-linux-gnueabihf-objcopy
QMAKE_STRIP = /opt/ti-processor-sdk-linux-am335x-evm-01.00.00.00/linux-devkit/sysroots/i686-arago-linux/usr/bin/arm-linux-gnueabihf-strip
#support for the tslib user 这里也根据自己的tslib来填写
QMAKE_INCDIR += /home/cxh/qt/tslib/tslib-master/src
QMAKE_LIBDIR += /home/cxh/qt/tslib/tslib_install/lib
load(qt_config)
进入源码主目录进行配置
./configure -v -opensource -confirm-license -prefix /home/cxh/qt/qt4/qt4_install -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-ssse3 -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 -qt-mouse-tslib
-prefix后跟的是安装路径 -xplatform 后跟的是目标设备, 就是我们刚才自己创建的文件夹 这两个地方要修改, 其他默认即可 最后的-qt-mouse-tslib是为了对触摸屏操作进行支持
运行完毕之后提示如下:
Qt is now configured for building. Just run 'make'.
Once everything is built, you must run 'make install'.
Qt will be installed into /opt/qt-arm
To reconfigure, run 'make confclean' and 'configure'.
接下来就可以编译安装了
如果需要重新配置那么可以执行
make confclean
然后在重新 configure就可以了
make -j4
sudo make install
要记住安装的位置, 我的位置是 /home/cxh/qt/qt4/qt4_install
到此已经能编译出bbb上可以用的Qt程序了, 但是板子如果要运行的话还要对板子进行设置.
//在开发板的根目录下新建 qt-arm 文件夹, 将pc上qt安装目录下的 lib文件夹拷贝到 qt-arm 下, 然后在 开发板的 /etc/profile的 PATH后边添加 ":/qt-arm/lib"
在开发板上新建一个跟pc上一模一样路径的安装路径, 比如以我的路径为例, 在开发板上就要在home下新建 cxh/qt/qt4/qt4_install 然后将pc上该文件夹下的内容拷贝过来
最后将编译好的程序放到板子上运行, 如果提示找不到库就到pc的安装文件夹下的库拷贝到开发板的/lib下
下面演示如何在qtcreator中设置编译bbb上可用的程序
tool -> option
选择pc上qt安装文件夹下的qmake
注意add时候要选 GCC, 选择sdk中的交叉编译器
选择编译链中的 xxx-gdb
最后新建一个kit 这样以后新建工程的时候就会先让选择使用哪个kit.
将编译出来的可执行文件拿到开发板上执行:
xxx -qws
即可.
推荐阅读:
http://blog.csdn.net/zy812248258/article/details/42554139
http://blog.csdn.net/wyt2013/article/details/18549415