Qt5.5.1移植到freescale imx6

一、环境

HOST:ubuntu12.04-LTS

Embedded:freescale imx6 linux-3.0.35

CROSS_COMPILE:freescale提供的gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin/arm-fsl-linux-gnueabi-


二、下载源码

http://mirrors.ustc.edu.cn/qtproject/archive/qt/5.5/5.5.1/single/qt-everywhere-opensource-src-5.5.1.tar.gz


三、解压

unzip qt-everywhere-opensource-src-5.5.1.tar.gz

cd qt-everywhere-opensource-src-5.5.1


四、指定arm架构、交叉编译器、包含的文件系统头文件、部分编译参数

vi qtbase/mkspecs/devices/linux-imx6-g++/qmake.conf

以下为全部内容,其他平台qtbase/mkspecs/devices/下要是没有单独提供,可以使用qtbase/mkspecs/linux-arm-gnueabi-g++/qmake.conf,需根据自己平台做相应修改。

#
# qmake configuration for the Freescale iMX6 boards (single, dual and quad)
#
#export CROSS_COMPILE=/opt/freescale/usr/local/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin/arm-fsl-linux-gnueabi-
MAKEFILE_GENERATOR      = UNIX   #宏定义,代码中有判断
CONFIG                 += incremental
QMAKE_INCREMENTAL_STYLE = sublib

QT_QPA_DEFAULT_PLATFORM = linuxfb #eglfs	#显示使用linuxfb或eglfs
IMX6_CFLAGS             = -march=armv7-a -mfpu=neon -DLINUX=1 -DEGL_API_FB=1	#处理器架构
IMX6_CFLAGS_RELEASE     = -O2 $$IMX6_CFLAGS
QMAKE_CFLAGS_RELEASE   += $$IMX6_CFLAGS_RELEASE
QMAKE_CXXFLAGS_RELEASE += $$IMX6_CFLAGS_RELEASE
QMAKE_CFLAGS           += $$IMX6_CFLAGS
QMAKE_CXXFLAGS         += $$IMX6_CFLAGS

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

# modifications to g++.conf
QMAKE_CC                = /opt/freescale/usr/local/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin/arm-fsl-linux-gnueabi-gcc
QMAKE_CXX               = /opt/freescale/usr/local/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin/arm-fsl-linux-gnueabi-g++
QMAKE_LINK              = /opt/freescale/usr/local/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin/arm-fsl-linux-gnueabi-g++
QMAKE_LINK_SHLIB        = /opt/freescale/usr/local/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin/arm-fsl-linux-gnueabi-g++

# modifications to linux.conf
QMAKE_AR                = /opt/freescale/usr/local/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin/arm-fsl-linux-gnueabi-ar cqs
QMAKE_OBJCOPY           = /opt/freescale/usr/local/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin/arm-fsl-linux-gnueabi-objcopy
QMAKE_STRIP             = /opt/freescale/usr/local/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin/arm-fsl-linux-gnueabi-strip

QMAKE_INCDIR            += /imx_disk/gq/qt/rootfs/usr/include
QMAKE_LIBDIR            += /imx_disk/gq/qt/rootfs/usr/lib

QMAKE_INCDIR            += /imx_disk/gq/qt/rootfs/usr/include/dbus-1.0
QMAKE_INCDIR            += /imx_disk/gq/qt/rootfs/usr/lib/dbus-1.0/include
QMAKE_LIBDIR            += /imx_disk/gq/qt/rootfs/usr/lib

QMAKE_INCDIR_OPENGL_ES2 = /imx_disk/gq/qt/rootfs/usr/include
QMAKE_LIBDIR_OPENGL_ES2 = /imx_disk/gq/qt/rootfs/usr/lib

QMAKE_INCDIR_EGL = /imx_disk/gq/qt/rootfs/usr/include
QMAKE_LIBDIR_EGL = /imx_disk/gq/qt/rootfs/usr/lib

QMAKE_LIBS_OPENGL_ES1       += -lGLESv1_CM -lEGL -lGAL
QMAKE_LIBS_OPENGL_ES1CL     += -lGLES_CL -lEGL -lGAL
QMAKE_LIBS_EGL         += -lEGL
QMAKE_LIBS_OPENGL_ES2  += -lGLESv2 -lEGL -lGAL
QMAKE_LIBS_OPENVG      += -lOpenVG -lEGL -lGAL
QMAKE_LIBS			   += -ljpeg -ldbus-1 -lrt -lpthread	#编译选项
#DISTRO_OPTS += hard-float      	#浮点运算使用软件不使用硬件


# Preferred eglfs backend
EGLFS_DEVICE_INTEGRATION = eglfs_viv

include(../common/linux_arm_device_post.conf)

load(qt_config)

五、根据自己实际需求配置QT

#!/bin/sh
./configure \
        -v -opensource -confirm-license -no-pch -no-xcb -no-openssl -no-opengl -opengl es2 \
        -dbus \
        -qt-zlib \
        -no-sse2 \
        -no-iconv \
        -tslib \
        -release \
        -make libs -device imx6 \
        -device-option CROSS_COMPILE=/opt/freescale/usr/local/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin/arm-fsl-linux-gnueabi- \
        -sysroot /imx_disk/gq/qt/ -no-gcc-sysroot \
        -prefix /qt5.5.1 \
        -make examples -nomake tools -nomake tests

配置结果如下:

Build options:
  Configuration .......... accessibility alsa audio-backend c++11 clock-gettime clock-monotonic compile_examples concurrent cross_compile dbus eglfs_viv enable_new_dtags evdev eventfd freetype full-config getaddrinfo getifaddrs harfbuzz inotify ipv6ifname large-config largefile linuxfb medium-config minimal-config mremap neon nis no-pkg-config opengl opengles2 openvg pcre png posix_fallocate qpa qpa reduce_exports release rpath shared small-config system-jpeg tslib zlib
  Build parts ............  libs examples
  Mode ................... release
  Using sanitizer(s)...... none
  Using C++11 ............ yes
  Using gold linker....... no
  Using new DTAGS ........ yes
  Using PCH .............. no
  Target compiler supports:
    Neon ................. yes

Qt modules and options:
  Qt D-Bus ............... yes (loading dbus-1 at runtime)
  Qt Concurrent .......... yes
  Qt GUI ................. yes
  Qt Widgets ............. yes
  Large File ............. yes
  QML debugging .......... yes
  Use system proxies ..... no

Support enabled for:
  Accessibility .......... yes
  ALSA ................... yes
  CUPS ................... no
  Evdev .................. yes
  FontConfig ............. no
  FreeType ............... yes (bundled copy)
  Glib ................... no
  GStreamer .............. no
  GTK theme .............. no
  HarfBuzz ............... yes (bundled copy)
  Iconv .................. no
  ICU .................... no
  Image formats:
    GIF .................. yes (plugin, using bundled copy)
    JPEG ................. yes (plugin, using system library)
    PNG .................. yes (in QtGui, using bundled copy)
  journald ............... no
  libinput................ no
  mtdev .................. no
  Networking:
    getaddrinfo .......... yes
    getifaddrs ........... yes
    IPv6 ifname .......... yes
    libproxy.............. no
    OpenSSL .............. no
  NIS .................... yes
  OpenGL / OpenVG:
    EGL .................. no
    OpenGL ............... yes (OpenGL ES 2.0+)
    OpenVG ............... yes-auto
  PCRE ................... yes (bundled copy)
  pkg-config ............. no
  PulseAudio ............. no
  QPA backends:
    DirectFB ............. no
    EGLFS ................ no
      EGLFS i.MX6....... . yes
      EGLFS KMS .......... no
      EGLFS Mali ......... no
      EGLFS Raspberry Pi . no
      EGLFS X11 .......... no
    LinuxFB .............. yes
    XCB .................. no
  Session management ..... yes
  SQL drivers:
    DB2 .................. no
    InterBase ............ no
    MySQL ................ no
    OCI .................. no
    ODBC ................. no
    PostgreSQL ........... no
    SQLite 2 ............. no
    SQLite ............... yes (plugin, using bundled copy)
    TDS .................. no
  tslib .................. yes
  udev ................... no
  xkbcommon-x11........... no
  xkbcommon-evdev......... no
  zlib ................... yes (bundled copy)


六、编译安装

1、make

2、make install


七、copy到开发板设置环境变量

1、将qt5.5.1打包拷贝到文件系统/usr/local/下,其中包含了qt5的examples,可以删除。

2、添加QT系统环境变量

vi /etc/profile添加
#for QT
export QT_ROOT=/usr/local/qt5.5.1
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/lib:/usr/lib:$QT_ROOT/lib
export QT_QPA_PLATFORM_PLUGIN_PATH=$QT_ROOT/plugins
export QT_QPA_PLATFORM=linuxfb:tty=/dev/fb0
export QT_QPA_FONTDIR=$QT_ROOT/lib/fonts
export QT_QPA_GENERIC_PLUGINS=evdevtouch:/dev/input/event0
export PATH=/bin:/sbin:/usr/bin/:/usr/sbin

export QML2_IMPORT_PATH=$QT_ROOT/qml

#export QT_QPA_GENERIC_PLUGINS=tslib:$TSLIB_TSDEVICE//如果触摸使用TSlib支持则修改为该句。

#export QT_QPA_EGLFS_FB=/dev/fb1

注:QT触摸屏支持可以不使用tslib。

3、tslib移植及支持请看http://blog.csdn.net/xishuang_gongzi/article/details/49422879


八、运行例子

注:图懒得截了,从别人处拷贝的。

examples/touch/pinchzoom/pinchzoom



examples/svg/embedded/fluidlauncher/fluidlauncher



九、编译及运行问题记录

1、编译错误:opengles2.cpp:37:25: fatal error: GLES2/gl2.h: No such file or directory

vi qtbase/mkspecs/devices/linux-imx6-g++/qmake.conf

解决:

QMAKE_INCDIR_OPENGL_ES2 = /imx_disk/gq/qt/rootfs/usr/include
QMAKE_LIBDIR_OPENGL_ES2 = /imx_disk/gq/qt/rootfs/usr/lib


2、编译错误:In function `png_reset_crc': png.c: undefined reference to `z_crc32'等,qtbase/src/3rdparty/libpng编译时出现大量z_开头的zlib库函数找不到定义。

解决:

./configure 后添加编译-qt-zlib
qt为了防止自己的zlib库与系统的zlib库冲突。Since Qt Core must export these symbols, define Z_PREFIX to avoid clashes system zlib */


3、编译错误:

运行时出现错误提示

QIconvCodec::convertToUnicode: using Latin-1 for conversion,iconv_open failed
QIconvCodec::convertFromUnicode: using Latin-1 for conversion,iconv_open failed
解决:

./configure 后添加编译 -no-iconv


4、编译错误qtwebkit/lib/libQt5WebKit.so: undefined reference to `jpeg_input_complete'

解决:

./configure 后添加编译-qt-libjpeg


5、编译错误:arm-fsl-linux-gnueabi/bin/ld: warning: libjpeg.so.62, needed by /.....qtwebkit/lib/libQt5WebKit.so, not found (try using -rpath or -rpath-link)

解决:
vi qtbase/mkspecs/devices/linux-imx6-g++/qmake.conf添加
QMAKE_LIBS             += -ljpeg
http://blog.sina.com.cn/s/blog_616fb0880100xrjj.html


6、编译错误:

qibusplatforminputcontext.cpp: In member function 'virtual void QIBusPlatformInputContext::reset()':
qibusplatforminputcontext.cpp:117:17: error: 'class QIBusInputContextProxy' has no member named 'Reset'
qibusplatforminputcontext.cpp: In member function 'virtual void QIBusPlatformInputContext::commit()':
qibusplatforminputcontext.cpp:140:17: error: 'class QIBusInputContextProxy' has no member named 'Reset'

解决:

qt编译./configuer 后加上-dbus 


7、配置错误:

The Qt D-Bus module cannot be enabled because libdbus-1 version 1.2 was not found.
解决:

参考:找到-prefix目录下的lib文件下的pkgconfig文件夹,打开dbus-1.pc
vi qtbase/mkspecs/devices/linux-imx6-g++/qmake.conf

QMAKE_INCDIR            += /imx_disk/gq/qt/rootfs/usr/include/dbus-1.0
QMAKE_INCDIR            += /imx_disk/gq/qt/rootfs/usr/lib/dbus-1.0/include
QMAKE_LIBDIR            += /imx_disk/gq/qt/rootfs/usr/lib

若rootfs中没有dbus库,则需要移植dbus1.2版本copy到文件系统,添加参数如下

QMAKE_INCDIR            += /imx_disk/gq/qt/dbus/dbusinstall_1.2.30/include/dbus-1.0
QMAKE_INCDIR            += /imx_disk/gq/qt/dbus/dbusinstall_1.2.30/lib/dbus-1.0/include
QMAKE_LIBDIR            += /imx_disk/gq/qt/dbus/dbusinstall_1.2.30/lib
其中dbusinstall_1.2.30是交叉编译dbus1.2后的安装目录。
编译dbus前需要先交叉编译dbus的依赖库expat-2.1.0


8、运行错误./examples/touch/pinchzoom/pinchzoom 
Cannot find libdbus-1 in your system to resolve symbol 'dbus_get_local_machine_id'.
Aborted
qt编译./configuer 后加上-dbus

9、编译错误:

/imx_disk/gq/qt/dbus/dbusinstall_1.2.30/lib/libdbus-1.a(dbus-sysdeps-pthread.o): In function `_dbus_pthread_condvar_wait_timeout':
/imx_disk/gq/qt/dbus/dbus-1.2.30/dbus/dbus-sysdeps-pthread.c:273: undefined reference to `clock_gettime'
/imx_disk/gq/qt/dbus/dbusinstall_1.2.30/lib/libdbus-1.a(dbus-sysdeps-pthread.o): In function `_dbus_pthread_condvar_new':
/imx_disk/gq/qt/dbus/dbus-1.2.30/dbus/dbus-sysdeps-pthread.c:206: undefined reference to `pthread_condattr_setclock'
/imx_disk/gq/qt/dbus/dbusinstall_1.2.30/lib/libdbus-1.a(dbus-sysdeps-pthread.o): In function `check_monotonic_clock':
/imx_disk/gq/qt/dbus/dbus-1.2.30/dbus/dbus-sysdeps-pthread.c:353: undefined reference to `clock_getres'
/imx_disk/gq/qt/dbus/dbusinstall_1.2.30/lib/libdbus-1.a(dbus-sysdeps-unix.o): In function `_dbus_get_current_time':
/imx_disk/gq/qt/dbus/dbus-1.2.30/dbus/dbus-sysdeps-unix.c:2071: undefined reference to `clock_gettime'

解决:
vi qtbase/mkspecs/devices/linux-imx6-g++/qmake.conf
QMAKE_LIBS             += -lrt


10、编译错误:

qsgvivantevideonode.cpp: In static member function 'static const QMap<QVideoFrame::PixelFormat, unsigned int>& QSGVivanteVideoNode::getVid   eoFormat2GLFormatMap()':
qsgvivantevideonode.cpp:64:77: error: 'GL_VIV_I420' was not declared in this scope

解决:方式两种,选一种,我们选第二种
①、
vi ./qtmultimedia/src/plugins/videonode/imx6/qsgvivantevideonode.cpp
const QMap<QVideoFrame::PixelFormat, GLenum>& QSGVivanteVideoNode::getVideoFormat2GLFormatMap()
{
    if (static_VideoFormat2GLFormatMap.isEmpty()) {
//        static_VideoFormat2GLFormatMap.insert(QVideoFrame::Format_YUV420P,  GL_VIV_I420);
//this video format needs to be commented because it will have support with kernel 3.10 but not with actual one
        static_VideoFormat2GLFormatMap.insert(QVideoFrame::Format_YV12,     GL_VIV_YV12);
        static_VideoFormat2GLFormatMap.insert(QVideoFrame::Format_NV12,     GL_VIV_NV12);
        static_VideoFormat2GLFormatMap.insert(QVideoFrame::Format_NV21,     GL_VIV_NV21);
        static_VideoFormat2GLFormatMap.insert(QVideoFrame::Format_UYVY,     GL_VIV_UYVY);
        static_VideoFormat2GLFormatMap.insert(QVideoFrame::Format_YUYV,     GL_VIV_YUY2);
        static_VideoFormat2GLFormatMap.insert(QVideoFrame::Format_RGB32,    GL_BGRA_EXT);
        static_VideoFormat2GLFormatMap.insert(QVideoFrame::Format_ARGB32,   GL_BGRA_EXT);
        static_VideoFormat2GLFormatMap.insert(QVideoFrame::Format_BGR32,    GL_RGBA);
        static_VideoFormat2GLFormatMap.insert(QVideoFrame::Format_BGRA32,   GL_RGBA);
        static_VideoFormat2GLFormatMap.insert(QVideoFrame::Format_RGB565,   GL_RGB565);
    }


    return static_VideoFormat2GLFormatMap;
}



vi rootfs/usr/include/GLES2/gl2ext.h
/* GL_VIV_direct_texture */
#ifndef GL_VIV_direct_texture
#define GL_VIV_YV12                     0x8FC0
#define GL_VIV_NV12                     0x8FC1
#define GL_VIV_YUY2                     0x8FC2
#define GL_VIV_UYVY                     0x8FC3
#define GL_VIV_NV21                     0x8FC4
#define GL_VIV_I420                     0x8FC5 //新增
#endif
值来自于这个patch    https://lists.yoctoproject.org/pipermail/meta-freescale/2014-June/008709.html


11、编译错误:

ssl/qsslcontext_openssl.cpp:444:52: error: 'SSL_SESSION' has no member named 'tlsext_tick_lifetime_hint'
解决:

configure编译时添加-no-openssl,即不编译openssl


12、运行错误:

./examples/quick/demos/samegame/samegame 
qrc:///demos/samegame/samegame.qml:41:1: module "QtQuick" is not installed
qrc:///demos/samegame/samegame.qml:42:1: module "QtQuick.Particles" is not installed
qrc:///demos/samegame/samegame.qml:41:1: module "QtQuick" is not installed
qrc:///demos/samegame/samegame.qml:42:1: module "QtQuick.Particles" is not installed

解决:

在环境里添加:export QML2_IMPORT_PATH=$QT_ROOT/qml,就能解决qrc:///main.qml:1 module "QtQuick" is not installed这样类似的问题,

$QT_ROOT/qml是你编译安装后会有个文件夹的。

13、运行错误:./examples/quick/demos/samegame/samegame 

This plugin does not support createPlatformOpenGLContext!
Failed to create OpenGL context for format QSurfaceFormat(version 2.0, options QFlags(), depthBufferSize 24, redBufferSize -1, greenBufferSize -1, blueBufferSize -1, alphaBufferSize -1, stencilBufferSize 8, samples -1, swapBehavior 2, swapInterval 1, profile  0) 
Aborted
回答:

The problem is likely that you are using qt quick 2, which requires OpenGL. OpenGL does not support the frame buffer used for the small display.


14、编译错误:

../WTF/wtf/unicode/wchar/UnicodeWchar.h: In function 'bool WTF::Unicode::isAlphanumeric(UChar)':

../WTF/wtf/unicode/wchar/UnicodeWchar.h:136:58: error: 'iswalnum' was not declared in this scope
../WTF/wtf/unicode/wchar/UnicodeWchar.h: In function 'bool WTF::Unicode::isDigit(UChar)':
../WTF/wtf/unicode/wchar/UnicodeWchar.h:137:51: error: 'iswdigit' was not declared in this scope
../WTF/wtf/unicode/wchar/UnicodeWchar.h: In function 'bool WTF::Unicode::isLetter(UChar)':

解决:
vi ./qtwebkit/Source/WTF/wtf/unicode/wchar/UnicodeWchar.h
#ifndef ANDROID
/*add by gq start*/
#include <wctype.h>
typedef unsigned short int UChar;
/*add by gq end*/
//# include <wchar.h>
// typedef wchar_t UChar;
#else
 typedef unsigned short int UChar;
#endif


15、编译错误:cc1plus: error: unrecognized command line option '-fuse-ld=gold'
解决:

这是Qt的一个bug:https://bugs.webkit.org/show_bug.cgi?id=89312
在装有gold linker的系统里,编译脚本会加入-fuse-ld=gold选项,但这个选项gcc是不支持的。解决办法是移除该选项,
vi qtbase/configure
CFG_USE_GOLD_LINKER=no


16、编译错误3、arm-fsl-linux-gnueabi/bin/ld: error: arch.o uses VFP register arguments, arch does not

解决:

vi./qtbase/mkspecs/devices/linux-imx6-g++/qmake.conf
#DISTRO_OPTS += hard-float
屏蔽掉该句后
g++编译器就被设置成-mfloat-abi=softfp,不使用hard,即浮点运算使用软件不使用硬件。


17、运行错误:
root@freescale /opt$ ./examples/svg/embedded/fluidlauncher/fluidlauncher 
process 2622: D-Bus library appears to be incorrectly set up; failed to read machine uuid: Failed to open "/usr/var/lib/dbus/machine-id": No such file or directory
See the manual page for dbus-uuidgen to correct this issue.
  D-Bus not built with -rdynamic so unable to print a backtrace
Aborted

解决:
dbus-uuidgen > /usr/var/lib/dbus/machine-id


十、主要参考
https://community.freescale.com/docs/DOC-94066
http://www.myir-tech.com/bbs/thread-7174-1-1.html
  • 4
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 14
    评论
### 回答1: 您好,要下载Qt5.5.1源码,您可以按照以下步骤操作: 1. 打开Qt官方网站:https://www.qt.io/downloads,点击 "下载"按钮。 2. 在下载页面中,选择“源代码”选项卡,并选择对应操作系统的Qt版本。 3. 在下载页面中会有一个 "开始下载"按钮,点击该按钮即可开始下载Qt5.5.1源码的压缩包。 4. 下载完成后,将压缩包解压到您希望存放Qt源码的目录中。 5. 打开解压后的文件夹,在该文件夹中找到 "configure" 文件,并双击运行。 6. 配置脚本将根据您的操作系统和编译器设置Qt编译环境。 7. 配置完成后,使用命令行或者IDE打开Qt源码文件夹。 8. 在Qt源码文件夹中,可以找到各个模块的源代码以及示例和文档资料。 这样,您就成功下载了Qt5.5.1的源码,并可以在自己的机器上进行阅读、学习或者二次开发。如果您需要根据自己的需求进行编译构建,可以参考Qt官方的编译指南进行操作。祝您学习愉快! ### 回答2: Qt 5.5.1是一个跨平台的应用程序开发框架,如果想要下载它的源码,可以按照以下步骤进行: 1. 打开Qt的官方网站(https://www.qt.io/),点击网站顶部的"Download"按钮。 2. 在下载页面上,选择"Archives"选项卡,找到"Qt 5.5.1"版本并点击它。 3. 在弹出的页面上,选择你的操作系统和编译器版本。如果你使用的是Windows操作系统,可以选择基于MSVC 2013或者MinGW编译器的版本,如果是Mac系统,可以选择基于Clang版本的Qt,如果是Linux系统,可以选择基于GCC版本的Qt。 4. 根据你的选择,点击相应的下载链接,开始下载相应的离线安装包。 5. 下载完成后,解压安装包,你将得到Qt 5.5.1的源码文件。 另外,Qt的源码也可以通过版本控制工具Git进行获取。你可以在Qt的官方Git仓库(https://code.qt.io/cgit/qt/qt5.git/)中找到Qt 5.5.1的源码,然后根据Git的用法进行克隆或者下载源码。 需要注意的是,Qt的源码下载可能会比较大,所以下载时间可能会比较长,而且需要一定的网络带宽和存储空间来存储源码。 ### 回答3: 您可以通过以下步骤下载qt5.5.1源码: 1. 打开Qt官方网站(https://www.qt.io/),并点击顶部菜单栏中的“下载”按钮。 2. 在下载页面中,您可以看到不同版本的Qt可用于下载。向下滚动页面,直到找到下方的“历史Qt版本”部分。 3. 在“历史Qt版本”部分中,找到并点击“5.5.1版本”的链接。 4. 进入5.5.1版本的下载页面后,您将看到不同的Qt安装程序。寻找一个标有“源代码”或“src”的选项,并点击下载链接。 5. 下载源代码包后,您可以解压缩它以获取Qt 5.5.1的源代码。 请注意,Qt 5.5.1是一个旧版本,可能已经过时并且不再接收官方支持。如果您正在寻找最新版本的Qt源代码,建议您查看Qt官方网站上可用的最新版本。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值