一、gcc交叉编译环境安装
1.1、将32位arm编译工具上传到64位ubuntu下
如:/tmp/gcc-linaro-arm-linux-gnueabihf-4.8-2014.04_linux.tar.xz
1.2、将arm编译工具解压
如解压到:/home/arm/gcc-linaro-arm-linux-gnueabihf-4.8-2014.04_linux
1.3、添加编译工具到环境变量
vi ~/.bashrc
##addt this to last lines
export PATH=$PATH:/home/arm/gcc-linaro-arm-linux-gnueabihf-4.8-2014.04_linux/bin
1.4.验证交叉编译环境
hello.c 简单的c程序,里面打印一行信息即可。
在命令行输入:arm-linux-gnueabi-g++ /home/hello.c ,能够成功编译。
shell:file a.out
output:/home/a.out: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-armhf.so.3, for GNU/Linux 3.1.1, BuildID[sha1]=da464fc370b3b44f340a555572a354ea0b099ec6, not stripped
可以看出arm平台的可执行文件生成成功。
二、QT交叉编译环境安装
2.1.将qt-everywhere-opensource-src-4.8.5.tar.xz上传到64位ubuntu下
如:/tmp/qt-everywhere-opensource-src-4.8.5.tar.xz
2.2.将qt源码解压
如解压到:/tmp/gcc-linaro-arm-linux-gnueabihf-4.8-2014.04_linux
2.3.配置路径及参数
./configure -embedded arm -xplatform qws/linux-arm-gnueabi-g++ -depths 4,8,12,16 -no-qt3support -no-qvfb -prefix /home/lhc/Qt/output/qt-arm/ -qt-sql-sqlite -no-rpath -no-largefile -force-pkg-config -little-endian
2.4.make
需要花费比较长时间
2.5.make install
安装完毕后/home/lhc/Qt/output/qt-arm 文件夹下就包含/bin /include /lib目录等。
2.6.修改qmake位qmake-arm 并添加进环境变量
进入/home/lhc/Qt/output/qt-arm/bin
命令:mv qmake qmake-arm
#add to system path
vi ~/.bashrc
##addt this to last lines
export PATH=$PATH:/home/lhc/Qt/output/qt-arm/bin/qt-everywhere-opensource-src-4.8.5/bin
2.7.替换qt版本
将/home/lhc/Qt/output/qt-arm/lib /home/lhc/Qt/output/qt-arm/include下的qt4.8.5文件替换为97上的库和头文件(97 qt是4.8.6)
三、安装依赖库
3.1.依赖库安装
缺少的依赖库,将97上面的依赖库拷贝到/lib/arm-linux-gnueabihf/目录下
具体如下:
opencv依赖库
mysql依赖库
libz.so.1
libjpeg.so.8
libpng12.so.0
libtiff.so.5
libjasper.so.1
libIlmImf.so.6
libHalf.so.6
libgtk-x11-2.0.so.0
libgdk-x11-2.0.so.0
libgobject-2.0.so.0
libglib-2.0.so.0
libdc1394.so.22
libv4l1.so.0
libavcodec.so.54
libavformat.so.54
libavutil.so.52
libswscale.so.2
libopencv_flann.so.2.4
libopencv_features2d.so.2.4
libopencv_ml.so.2.4
libhasp_linux_armeabi-hf.so
libusb-1.0.so.0
libEGL.so.1
libfontconfig.so.1
libaudio.so.2
libfreetype.so.6
libSM.so.6
libICE.so.6
libXi.so.6
libXrender.so.1
libXext.so.6
libX11.so.6
3.2.环境变量添加
export PATH=$PATH:/lib/arm-linux-gnueabihf/
四、下载源码并修改CMakeLists.txt 和main.pro文件
4.1.CMakeLists.txt添加下面编译选项
set(CMAKE_C_COMPILER arm-linux-gnueabi-gcc)
set(CMAKE_CXX_COMPILER arm-linux-gnueabi-g++)
4.2.main.pro
#添加编译选项,依赖库的目录
QMAKE_LFLAGS += -Wl,-rpath=/lib/arm-linux-gnueabihf/
#添加依赖库目录
LIBS += -L/lib/arm-linux-gnueabihf/