查看完整版本: [-- 如何编译嵌入式版本QT --]

QTCN开发网 -> Qt QML开发 -> 如何编译嵌入式版本QT [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题

conghua 2015-12-10 15:10

如何编译嵌入式版本QT

如题,我现在使用i.MX6的ARM处理器,请问下如何配置编译Qt?./configure -h 查看并没有 “-embedded”参数啊,有“xplatform”

uidab 2015-12-11 09:40
不知道你从哪里买的MX6,我用过一款MX6的开发板,人家都编译好了Qt,我直接下载的。

galaxy_nexus 2015-12-11 20:50
#/bin/bash

#rm -rf  qt-everywhere-opensource-src-5.5.1

#xz -d qt-everywhere-opensource-src-5.5.1.tar.xz
#tar -xf qt-everywhere-opensource-src-5.5.1.tar
    
cd /home/galaxy/qt-everywhere-opensource-src-5.5.1/qt-everywhere-opensource-src-5.5.1

echo yes | ./configure -xplatform linux-arm-gnueabi-g++  \
                                             -prefix /opt/qt-arm-5.5.1 \
                                             -release -opensource \
                                             -nomake tools -make libs -nomake examples \
                                             -qpa eglfs -eglfs -opengl es2 \
                                             -confirm-license "$@" -verbose

#make 2>&1 | tee ../qte5.5.1Makelog &&sudo make install

#QMAKE_INCDIR_OPENGL_ES2=/home/galaxy/FIMG_3D_source/include
#QMAKE_LIBDIR_OPENGL_ES2=/home/galaxy/FIMG_3D_source/lib/gl
#QMAKE_LIBS_OPENGL_ES2 = -lChunkAlloc -lgles11 -lgles20

# modifications to g++.conf
#QMAKE_CC                = /usr/local/arm/4.4.1/bin/arm-linux-gcc
#QMAKE_CXX               = /usr/local/arm/4.4.1/bin/arm-linux-g++
#QMAKE_LINK              = /usr/local/arm/4.4.1/bin/arm-linux-g++
#QMAKE_LINK_SHLIB        = /usr/local/arm/4.4.1/bin/arm-linux-g++

# modifications to linux.conf
#QMAKE_AR                = /usr/local/arm/4.4.1/bin/arm-linux-ar cqs
#QMAKE_OBJCOPY           = /usr/local/arm/4.4.1/bin/arm-linux-objcopy
#QMAKE_NM                = /usr/local/arm/4.4.1/bin/arm-linux-nm -P
#QMAKE_STRIP             = /usr/local/arm/4.4.1/bin/arm-linux-strip

#遇到下面错误:
#                                more undefined references to `__sync_sub_and_fetch_4' follow
#                                obj/release/JSObjectRef.o: In function `JSClassRetain':
#                                JSObjectRef.cpp:(.text+0x88): undefined reference to `__sync_add_and_fetch_4'
#                                obj/release/JSObjectRef.o: In function `JSClassRelease':
#                                JSObjectRef.cpp:(.text+0x520): undefined reference to `__sync_sub_and_fetch_4'
#                                obj/release/JSStringRef.o: In function `JSStringRetain':
#                                JSStringRef.cpp:(.text+0x108): undefined reference to `__sync_add_and_fetch_4'
#                                obj/release/JSStringRef.o: In function `JSStringRelease':
#                                JSStringRef.cpp:(.text+0x2ec): undefined reference to `__sync_sub_and_fetch_4'
#                                obj/release/JSStringRef.o: In function `JSStringIsEqualToUTF8CString':
#                                JSStringRef.cpp:(.text+0x348): undefined reference to `__sync_sub_and_fetch_4'
#                                obj/release/JSValueRef.o: In function `JSValueToStringCopy':
#                                JSValueRef.cpp:(.text+0x1818): undefined reference to `__sync_sub_and_fetch_4'

# 在/qtscript/src/script/Makefile 中找到LIBS那一行,行末添加 -L/home/galaxy/qt-everywhere-opensource-src-5.5.1 -llinux-atomic


conghua 2015-12-14 09:17
uidab:不知道你从哪里买的MX6,我用过一款MX6的开发板,人家都编译好了Qt,我直接下载的。 (2015-12-11 09:40) 

我们公司买的飞思卡尔的开发板,用的yocto,是可以编译出来一个Qt的SDK,但是我想用源码编译一下,因为需要编译比如Qt3D等独立的模块

uidab 2015-12-14 11:09
conghua:我们公司买的飞思卡尔的开发板,用的yocto,是可以编译出来一个Qt的SDK,但是我想用源码编译一下,因为需要编译比如Qt3D等独立的模块 (2015-12-14 09:17) 

“-embedded”参数,好像是Qt4里的参数,不是Qt5的。我自己没编译过。
搜到这个官方http://doc.qt.io/qt-5/embedded-linux.html,你可以看看

自强不吸 2016-10-18 16:12
不要OpenGL的话就这样:
一、安装交叉编译器:

1、解压交叉编译器到/opt下:
tar -zxvf arm-none-linux-gcc-2014.05.tar.gz -C/opt

2、添加全局环境变量:
打开.bashrc文件:vim ~/.bashrc,在此文件的最后加上一句:
export PATH="/opt/arm-2014.05/bin:$PATH"

3、使环境变量立即生效
source ~/.bashrc

二、交叉编译tslib触摸屏库:

1、解压tslib1.4并进入其中,编写配置文件:
vim configTslib14.sh

2、在此文件中写入以下内容并保存退出:
#!/bin/sh
make clean && make distclean
echo "ac_cv_func_malloc_0_nonnull=yes" >arm-linux.cache
CC=arm-none-linux-gnueabi-gcc ./configure --host=arm-none-linux-gnueabi --prefix=/usr/local/tslib --cache-file=arm-linux.cache
make && make install

3、交叉编译:
./configTslib14.sh

三、交叉编译Qt5.2.1:

1、解压Qt5.2.1:
tar -zxvf qt-everywhere-opensource-src-5.2.1.tar.gz

2、进入解压后的文件夹,配置qmake.conf并保存退出
gedit qtbase/mkspecs/linux-arm-gnueabi-g++/qmake.conf

文件配置如下:
#
# qmake configuration for building with arm-linux-gnueabi-g++
#

MAKEFILE_GENERATOR      = UNIX
CONFIG                 += incremental gdb_dwarf_index
QMAKE_INCREMENTAL_STYLE = sublib

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

QMAKE_INCDIR += /usr/local/tslib/include
QMAKE_LIBDIR += /usr/local/tslib/lib

# modifications to g++.conf
QMAKE_CC                = arm-none-linux-gnueabi-gcc -lts
QMAKE_CXX               = arm-none-linux-gnueabi-g++ -lts
QMAKE_LINK              = arm-none-linux-gnueabi-g++ -lts
QMAKE_LINK_SHLIB        = arm-none-linux-gnueabi-g++ -lts

# modifications to linux.conf
QMAKE_AR                = arm-none-linux-gnueabi-ar cqs
QMAKE_OBJCOPY           = arm-none-linux-gnueabi-objcopy
QMAKE_NM                = arm-none-linux-gnueabi-nm -P
QMAKE_STRIP             = arm-none-linux-gnueabi-strip
load(qt_config)

3、编译安装:
./configure -prefix /usr/local/Qt5.2.1GL -opensource -confirm-license -release -shared -xplatform linux-arm-gnueabi-g++ -no-pch -no-c++11 -qt-libpng -qt-libjpeg -optimized-qmake -no-cups -no-xcb -no-nis -opengl -no-iconv -no-rpath -tslib -no-openssl -no-iconv -directfb -no-separate-debug-info -no-accessibility -no-javascript-jit -no-xcursor -no-xfixes -no-xrandr -no-xrender -no-sse2 -silent -nomake tools -nomake examples -nomake tests -qt-freetype -no-glib -skip webkit -skip declarative -skip script -v;make;make install

自强不吸 2016-10-18 16:13
假如你需要编译进去qtquick模块,需要板子厂家提供OpenGL库,因为qtquick基于OpenGL


查看完整版本: [-- 如何编译嵌入式版本QT --] [-- top --]



Powered by phpwind v8.7 Code ©2003-2011 phpwind
Gzip disabled