QT5.6.2配置和交叉编译

####1.源码下载和解压
源码目录:
(1)源码下载目录:/mnt/hgfs/windows_share/clock_project/qt_source/qt-everywhere-opensource-src-5.6.2.7z
(2)创建工作目录,并解压 /home/aston/qt5.x_porting/qt5.6.2
(3)创建安装目录 /opt/qt5.6.2
####2.配置
(1)配置相应的qmake
vi qtbase/mkspecs/linux-arm-gnueabi-g++/qmake.conf
//找到和我们的很像的linux-arm-很像,所以我们基于这个改
打开这个文件,添加如下内容

#aston added
QT_QPA_DEFAULT_PLATFORM = linuxfb   
#linuxfb表示非窗口的配置
QMAKE_CFLAGS_RELEASE   += -O2  -march=armv7-a #armv7-a  表示机器架构:armv7
QMAKE_CXXFLAGS_RELEASE += -O2  -march=armv7-a

修改下面内容:
# modifications to g++.conf
QMAKE_CC = arm-linux-gcc -lts   //-lts表示添加tslib
QMAKE_CXX = arm-linux-g++ -lts	-ldl
QMAKE_LINK = arm-linux-g++ -lts	-ldl
QMAKE_LINK_SHLIB = arm-linux-g++ -lts	-ldl
# modifications to linux.conf
QMAKE_AR = arm-linux-ar cqs 
QMAKE_OBJCOPY = arm-linux-objcopy 
QMAKE_NM = arm-linux-nm -P
QMAKE_STRIP = arm-linux-strip 

(2)编译前配置(可以参考./configure --help的提示来配置)

//注意\后面什么都不能有连空格都不行,不然容易出错
/******************命令的解释**********************/
./configure  -prefix /opt/qt5.6.2  \ 这个目录一定是自己创建的哪个
  -opensource  \		开源的
  -confirm-license \	设置license
  -release  \			release版本不是debug的版本
  -shared  \			分享的
  -accessibility \		没研究过
-c++std c++98 \			设置c++的标准为98而导致了qt的版本不能太高
  -xplatform linux-arm-gnueabi-g++ \ //linux-arm-gnueabi-g++决定了要到qtbase/mkspecs/linux-arm-gnueabi-g++目录的qmake.conf去编译
-qpa linuxfb \			使用linuxfb
-linuxfb \
-qreal float \
-pch \
-qt-zlib \
  -qt-libjpeg \      	添加libjpeg这个库
          -qt-libpng \
-no-sse2 \				去掉sse2这个库
          -no-largefile \
          -no-qml-debug \
          -no-glib \
-no-gtkstyle \
  -no-opengl \
  -nomake tools \
  -nomake examples \
  -tslib \
  -skip qt3d -skip qtcanvas3d -skip qtdoc -skip qtwayland \
  -I /opt/tslib/include \		-I表示编译时去找头文件的地址
  -L /opt/tslib/lib				导出lib的共享库

/*********************************************/

####命令:

./configure  -prefix /opt/qt5.6.2  \
  -opensource  \
  -confirm-license \
  -release  \
  -shared  \
  -accessibility \
-c++std c++98 \
  -xplatform linux-arm-gnueabi-g++ \
-qpa linuxfb \
-linuxfb \
-qreal float \
-pch \
-qt-zlib \
  -qt-libjpeg \
          -qt-libpng \
-no-sse2 \
          -no-largefile \
          -no-qml-debug \
          -no-glib \
-no-gtkstyle \
  -no-opengl \
  -nomake tools \
  -nomake examples \
  -tslib \
  -skip qt3d -skip qtcanvas3d -skip qtdoc -skip qtwayland \
  -I /opt/tslib/include \
  -L /opt/tslib/lib

####3.编译中的错误解决
(1)找不到dlopen或者dlsym
在编译器后面加ldl arm-linux-g++ -ldl
(2)undefined reference to `__sync_add_and_fetch_4’
参考http://www.mamicode.com/info-detail-1699895.html

把linux-atomic.c复制到/home/aston/qt5.x_porting/linux_atomic中执行
  #apt-get install libtool-bin
  #libtool --tag=CC --mode=compile arm-linux-gcc -g -O2 -MT linux-atomic.lo -MD -MP -MF linux-atomic.Tpo -c -o linux-atomic.lo linux-atomic.c 
  
  #libtool --tag=CC --mode=link arm-linux-g++ -g -O2 -o liblinux-atomic.la linux-atomic.lo

利用libtool生成liblinux-atomic.a(这个文件在.libs目录中生成的),注意生成的目录名叫.libs所以是隐藏的
  
  cp .libs/liblinux-atomic.a /opt/linux-atomic	
  // 注意/opt/linux-atomic是自己事先创建的
  在QT源码下修改:./qtscript/src/script/Makefile
  在LIBS  = 的结尾添加 -L/opt/linux-atomic -llinux-atomic

####4. make install 安装即可
5.安装qt-opensource-linux-x64-5.6.2.run到/opt/QT5.6.2_Untu_SDK中
/opt/QT5.6.2_Untu_SDK/Tools/QtCreator/bin 执行qtcreator
5.1配置交叉编译工具
这里写图片描述
这里写图片描述
这里写图片描述

本博客出自朱老师X210上QT5.6.2移植和开发环境搭建

另外如果单纯搭建Linux上的QT环境可以参考:
https://blog.csdn.net/qq_30155503/article/details/80093784

按照上面的链接的步骤一步步做,直到下面位置不同:
三、配置环境
我设置的安装环境是
/usr/local/Qtcreator/ 为Qtcreator的安装目录
/usr/local/Qt-5.6.2 为Qt SDK 的安装目录

我发现5.6.2的有3个文件夹有bin和lib的目录,因为之前按照上面链接的更改,有错误,所以我就把3个文件的lib和bin都包含进去了(你们对照自己的目录更改即可)

还要注意:
1.chmod -R 777 XXXX.run目录(就是你下载的Qtcreator的.run可执行目录)它的权限一定是可执行的
2.因为我添加了Qtcreator到PATH目录,直接运行qtcreator显示没有可执行程序,那么我们可以通过建立软链接的方式实现,
cd /usr/bin
ln -s /usr/local/Qtcreator/Tools/QtCreator/bin/qtcreator qtcreator
(/usr/local/Qtcreator/Tools/QtCreator/bin/qtcreator是我的安装目录,可以对应更改一哈)
3.那么在任意位置可直接运行qtcreator就可以启动qt

export QTDIR=/usr/local/
export PATH=$QTDIR/Qt5.6.2/bin:$QTDIR/Qtcreator/5.6/gcc_64/bin:$QTDIR/Qtcreator/Tools/QtCreator/bin:$PATH
export LD_LIBRARY_PATH=$QTDIR/Qtcreator/5.6/gcc_64/lib:$QTDIR/Qt-5.6.2/lib:$QTDIR/Qtcreator/Tools/QtCreator/bin:$LD_LIBRARY_PATH
  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值