ARM40之Qt4.8.7 -dbus 交叉编译

15 篇文章 0 订阅
13 篇文章 0 订阅
我的工作环境
配置工具链
$ sudo xz -d gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabi.tar.xz
$ ls
$ sudo tar xvf gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabi.tar -C /opt/
$ cd ~
$ vim .bashrc  

在.bashrc的末尾添加文本
export PATH=$PATH:/opt/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabi/bin/

$ arm-linux-gnueabi-gcc -v    #查看ARM-GCC版本

Thread model: posix
gcc version 4.9.4 (Linaro GCC 4.9-2017.01)

配置tslib
  • 下载tslib
$ sudo apt-get install git
$ git clone https://github.com/kergoth/tslib.git

正克隆到 ‘tslib’…
remote: Counting objects: 5089, done.
remote: Total 5089 (delta 0), reused 0 (delta 0), pack-reused 5089
接收对象中: 100% (5089/5089), 2.39 MiB | 429.00 KiB/s, 完成.
处理 delta 中: 100% (3505/3505), 完成.
检查连接… 完成。

  • 编译安装tslib
$ sudo apt-get install automake libtool
$ sudo mkdir /opt/tslib
$ cd tslib
$ ./autogen.sh
$ ./configure CC=/opt/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabi/bin/arm-linux-gnueabi-gcc \
            CXX=/opt/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabi/bin/arm-linux-gnueabi-g++ \
            --prefix=/opt/tslib \
            --host=arm-linux-gnueabi \
            ac_cv_func_malloc_0_nonnull=yes
$ make&&sudo make install
$ ls /opt/tslib/
>>>>bin  etc  include  lib  share

编译安装Qt4.8.7

解压qt源码包到指定目录,并编辑qmake.conf。

$ tar xvf qt-everywhere-opensource-src-4.8.7.tar.gz
$ cd qt-everywhere-opensource-src-4.8.7/
$ vim  ./mkspecs/qws/linux-arm-gnueabi-g++/qmake.conf
#
# qmake configuration for building with arm-none-linux-gnueabi-g++
#

include(../../common/linux.conf)
include(../../common/gcc-base-unix.conf)
include(../../common/g++-unix.conf)
include(../../common/qws.conf)

# modifications to g++.conf
QMAKE_CC                = /opt/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabi/bin/arm-linux-gnueabi-gcc -lts
QMAKE_CXX               = /opt/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabi/bin/arm-linux-gnueabi-g++ -lts
QMAKE_LINK              = /opt/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabi/bin/arm-linux-gnueabi-g++ -lts
QMAKE_LINK_SHLIB        = /opt/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabi/bin/arm-linux-gnueabi-g++ -lts

# modifications to linux.conf
QMAKE_AR                = /opt/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabi/bin/arm-linux-gnueabi-ar cqs
QMAKE_OBJCOPY           = /opt/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabi/bin/arm-linux-gnueabi-objcopy
QMAKE_STRIP             = /opt/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabi/bin/arm-linux-gnueabi-strip

load(qt_config)
  • configure编译配置

-debug-and-release \ Qt调试;
-shared \ 动态编译;
-static \ 静态编译;
-make docs \ 文档帮助;
-DQT_NO_QWS_CURSOR \ 不显示鼠标
-dbus \D-Bus库选项,需要预先编译D-Bus

$ sudo mkdir /opt/qte4.8.7
$ ./configure  \
            --prefix=/opt/qte4.8.7 \
            -opensource \
            -release \
            -shared \
            -Declarative \
            -fast \
            -no-largefile \
            -qt-sql-sqlite \
            -qt3support \
            -exceptions \
            -xmlpatterns \
            -script \
            -scripttools \
            -no-glib \
            -no-phonon \
            -svg \
            -no-webkit \
            -qt-zlib \
            -qt-libtiff \
            -qt-libpng \
            -qt-libjpeg \
            -make libs \
            -nomake tools \
            -nomake examples \
            -nomake docs \
            -nomake demos \
            -no-nis \
            -no-cups \
            -no-iconv \
            -xplatform qws/linux-arm-gnueabi-g++ \
            -embedded arm \
            -little-endian \
            -qt-freetype \
            -depths 16,24,32 \
            -qt-gfx-linuxfb \
            -no-gfx-transformed \
            -no-gfx-multiscreen \
            -no-gfx-vnc \
            -no-gfx-qvfb \
            -qt-kbd-linuxinput \
            -qt-kbd-tty  \
            -no-kbd-qvfb \
            -armfpa \
            -optimized-qmake  \
            -no-mouse-qvfb \
            -qt-mouse-linuxtp \
            -qt-mouse-tslib \
            -DQT_QLOCALE_USES_FCVT \
            -DQT_NO_QWS_CURSOR \
            -pch \
            -dbus -dbus-linked \
            -I/opt/dbus/include \
            -I/opt/dbus/include/dbus-1.0/dbus \
            -L/opt/dbus/lib -ldbus-1 -lpthread -lrt \
            -force-pkg-config \
            -I/opt/tslib/include \
            -L/opt/tslib/lib  \
            -confirm-license   
$ make -j 4
$ sudo make install
  • 报错

1、 Makefile:742: recipe for target ‘sub-tools-make_default-ordered’ failed
make: *** [sub-tools-make_default-ordered] Error 2

解决方案:configure项添加 -nomake tools 或者直接忽视之

2、 Makefile:201: recipe for target ‘sub-corelib-make_default-ordered’ failed
make: *** [sub-corelib-make_default-ordered] Error 2

一般都是编译器路径有问题导致的,检查qmake.conf文件

3、The tslib functionality test failed!
You might need to modify the include and library search paths by editing QMAKE_INCDIR and QMAKE_LIBDIR in

没找到编译器

4、qdbusintegrator.cpp:(.text+0x4308):对‘dbus_connection_can_send_type’未定义的引用
qdbusintegrator.cpp:(.text+0x4984):对‘dbus_connection_can_send_type’未定义的引用
collect2: error: ld returned 1 exit status
Makefile:180: recipe for target ‘…/…/lib/libQtDBus.so.4.8.7’ failed

在当前命令行下,输入下面的指令

export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/opt/dbus/lib/pkgconfig

  • 查看Qt版本
$ cd /opt/qte4.8.7/bin/
$ ./qmake -v
>>>>QMake version 2.01a
Using Qt version 4.8.7 in /opt/qte4.8.7/lib

未完,待续QtDbus。。。

参考引用
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值