linux交叉编译

一、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/

 

 

 

 

你可能感兴趣的:(linux,linux,c++,qt)