准备把Qt5.9.2运行在AllWinner全志V3s荔枝派zero板子上
离线
软件浮点数工具链安装:
sudo apt-get install gcc-arm-linux-gnueabi
sudo apt-get install g++-arm-linux-gnueabi
软件硬件数(hardware float)工具链安装:
sudo apt-get install gcc-arm-linux-gnueabihf
sudo apt-get install g++-arm-linux-gnueabihf
离线
离线
编译安装tslib:
git clone https://github.com/kergoth/tslib.git
cd tslib
配置编译Qt5.9.2
QT592_PREFIX=/usr/local/Qt592
TSLIB_PREFIX=${PWD}/../_installed/
./configure \
-confirm-license \
-prefix ${QT592_PREFIX} \
-release \
-opensource \
-static \
-no-accessibility \
-qt-zlib \
-qt-freetype \
-no-gif \
-qt-libpng \
-qt-libjpeg \
-no-openssl \
-no-cups \
-no-iconv \
-no-pch \
-no-dbus \
-platform linux-g++-64 \
-xplatform linux-arm-gnueabi-g++ \
-no-opengl \
-no-openvg \
-no-sm \
-no-fontconfig \
-no-xkb \
-no-glib \
-tslib \
-I ${TSLIB_PREFIX}/include/ \
-L ${TSLIB_PREFIX}/lib/
离线
unroot@ubuntu:/opt/qt-everywhere-opensource-src-5.9.2$ ./configure \
> -prefix ${QT592_PREFIX} \
> -release \
> -opensource \
> -static \
> -no-accessibility \
> -qt-zlib \
> -qt-freetype \
> -no-gif \
> -qt-libpng \
> -qt-libjpeg \
> -no-openssl \
> -no-cups \
> -no-iconv \
> -no-pch \
> -no-dbus \
> -platform linux-g++-64 \
> -xplatform linux-arm-gnueabi-g++ \
> -no-opengl \
> -no-openvg \
> -no-sm \
> -no-fontconfig \
> -no-xkb \
> -no-glib \
> -tslib \
> -I ${TSLIB_PREFIX}/include/ \
> -L ${TSLIB_PREFIX}/lib/
+ cd qtbase
+ /opt/qt-everywhere-opensource-src-5.9.2/qtbase/configure -top-level -prefix /usr/local/Qt592 -release -opensource -static -no-accessibility -qt-zlib -qt-freetype -no-gif -qt-libpng -qt-libjpeg -no-openssl -no-cups -no-iconv -no-pch -no-dbus -platform linux-g++-64 -xplatform linux-arm-gnueabi-g++ -no-opengl -no-openvg -no-sm -no-fontconfig -no-xkb -no-glib -tslib -I /opt/qt-everywhere-opensource-src-5.9.2/../_installed//include/ -L /opt/qt-everywhere-opensource-src-5.9.2/../_installed//lib/
Creating qmake...
.Done.This is the Qt Open Source Edition.
You are licensed to use this software under the terms of
the GNU Lesser General Public License (LGPL) version 3
or the GNU General Public License (GPL) version 2.Type 'L' to view the GNU Lesser General Public License version 3 (LGPLv3).
Type 'G' to view the GNU General Public License version 2 (GPLv2).
Type 'y' to accept this license offer.
Type 'n' to decline this license offer.Do you accept the terms of either license? y
Running configuration tests...
Checking for gold linker... yes
Checking for machine tuple... yes
Checking for valid makespec... yes
Checking for alloca() in alloca.h... yes
Checking for target architecture... Project ERROR: Could not determine target architecture. See config.log for details.
unroot@ubuntu:/opt/qt-everywhere-opensource-src-5.9.2$ cat config.log
Command line: -prefix /usr/local/Qt592 -release -opensource -static -no-accessibility -qt-zlib -qt-freetype -no-gif -qt-libpng -qt-libjpeg -no-openssl -no-cups -no-iconv -no-pch -no-dbus -platform linux-g++-64 -xplatform linux-arm-gnueabi-g++ -no-opengl -no-openvg -no-sm -no-fontconfig -no-xkb -no-glib -tslib -I /opt/qt-everywhere-opensource-src-5.9.2/../_installed//include/ -L /opt/qt-everywhere-opensource-src-5.9.2/../_installed//lib/
executing config test use_gold_linker
+ cd /opt/qt-everywhere-opensource-src-5.9.2/config.tests && arm-linux-gnueabi-g++ -fuse-ld=gold -o conftest-out conftest.cpp
test config.qtbase.tests.use_gold_linker succeeded
executing config test machineTuple
+ arm-linux-gnueabi-g++ -dumpmachine
> arm-linux-gnueabi
test config.qtbase.tests.machineTuple succeeded
executing config test verifyspec
+ cd /opt/qt-everywhere-opensource-src-5.9.2/config.tests/verifyspec && /opt/qt-everywhere-opensource-src-5.9.2/qtbase/bin/qmake "CONFIG -= qt debug_and_release app_bundle lib_bundle" "CONFIG += static use_gold_linker warn_off console single_arch" 'QMAKE_LIBDIR += /opt/qt-everywhere-opensource-src-5.9.2/../_installed//lib/' 'INCLUDEPATH += /opt/qt-everywhere-opensource-src-5.9.2/../_installed//include/' -early "CONFIG += cross_compile" /opt/qt-everywhere-opensource-src-5.9.2/qtbase/config.tests/verifyspec
+ cd /opt/qt-everywhere-opensource-src-5.9.2/config.tests/verifyspec && MAKEFLAGS= /usr/bin/make
> arm-linux-gnueabi-g++ -c -pipe -O2 -std=gnu++11 -w -fPIC -I/opt/qt-everywhere-opensource-src-5.9.2/qtbase/config.tests/verifyspec -I. -I/opt/qt-everywhere-opensource-src-5.9.2/../_installed//include/ -I/opt/qt-everywhere-opensource-src-5.9.2/qtbase/mkspecs/linux-arm-gnueabi-g++ -o verifyspec.o /opt/qt-everywhere-opensource-src-5.9.2/qtbase/config.tests/verifyspec/verifyspec.cpp
> arm-linux-gnueabi-g++ -Wl,-O1 -fuse-ld=gold -o verifyspec verifyspec.o -L/opt/qt-everywhere-opensource-src-5.9.2/../_installed//lib/
test config.qtbase.tests.verifyspec succeeded
executing config test alloca_h
+ cd /opt/qt-everywhere-opensource-src-5.9.2/config.tests/alloca_h && /opt/qt-everywhere-opensource-src-5.9.2/qtbase/bin/qmake "CONFIG -= qt debug_and_release app_bundle lib_bundle" "CONFIG += static use_gold_linker warn_off console single_arch" 'QMAKE_LIBDIR += /opt/qt-everywhere-opensource-src-5.9.2/../_installed//lib/' 'INCLUDEPATH += /opt/qt-everywhere-opensource-src-5.9.2/../_installed//include/' -early "CONFIG += cross_compile" /opt/qt-everywhere-opensource-src-5.9.2/config.tests/alloca_h
+ cd /opt/qt-everywhere-opensource-src-5.9.2/config.tests/alloca_h && MAKEFLAGS= /usr/bin/make
> arm-linux-gnueabi-g++ -c -pipe -O2 -std=gnu++11 -w -fPIC -I. -I/opt/qt-everywhere-opensource-src-5.9.2/../_installed//include/ -I/opt/qt-everywhere-opensource-src-5.9.2/qtbase/mkspecs/linux-arm-gnueabi-g++ -o main.o main.cpp
> arm-linux-gnueabi-g++ -Wl,-O1 -fuse-ld=gold -o alloca_h main.o -L/opt/qt-everywhere-opensource-src-5.9.2/../_installed//lib/
test config.qtbase.tests.alloca_h succeeded
executing config test architecture
+ cd /opt/qt-everywhere-opensource-src-5.9.2/config.tests/arch && /opt/qt-everywhere-opensource-src-5.9.2/qtbase/bin/qmake "CONFIG -= qt debug_and_release app_bundle lib_bundle" "CONFIG += static use_gold_linker warn_off console single_arch" 'QMAKE_LIBDIR += /opt/qt-everywhere-opensource-src-5.9.2/../_installed//lib/' 'INCLUDEPATH += /opt/qt-everywhere-opensource-src-5.9.2/../_installed//include/' -early "CONFIG += cross_compile" /opt/qt-everywhere-opensource-src-5.9.2/qtbase/config.tests/arch
+ cd /opt/qt-everywhere-opensource-src-5.9.2/config.tests/arch && MAKEFLAGS= /usr/bin/make
> arm-linux-gnueabi-g++ -c -pipe -O2 -std=gnu++11 -w -fPIC -I/opt/qt-everywhere-opensource-src-5.9.2/qtbase/config.tests/arch -I. -I/opt/qt-everywhere-opensource-src-5.9.2/../_installed//include/ -I/opt/qt-everywhere-opensource-src-5.9.2/qtbase/mkspecs/linux-arm-gnueabi-g++ -o arch.o /opt/qt-everywhere-opensource-src-5.9.2/qtbase/config.tests/arch/arch.cpp
> In file included from /opt/qt-everywhere-opensource-src-5.9.2/qtbase/config.tests/arch/../../src/corelib/global/archdetect.cpp:41:0,
> from /opt/qt-everywhere-opensource-src-5.9.2/qtbase/config.tests/arch/arch.cpp:42:
> /opt/qt-everywhere-opensource-src-5.9.2/qtbase/config.tests/arch/../../src/corelib/global/qprocessordetection.h:149:6: 错误: #error "ARM architecture too old"
> make: *** [arch.o] 错误 1
unroot@ubuntu:/opt/qt-everywhere-opensource-src-5.9.2$
configure出错
离线
找到参考网站:
Qt5.4.1移植到arm——Linuxfb篇
QT5.5移植到ARM全攻略
修改 qtbase/mkspecs/linux-arm-gnueabi-g++/qmake.conf 成这样:
#
# qmake configuration for building with arm-linux-gnueabi-g++
#MAKEFILE_GENERATOR = UNIX
CONFIG += incremental
QMAKE_INCREMENTAL_STYLE = sublib
QT_QPA_DEFAULT_PLATFORM = linuxfb
QMAKE_CFLAGS_RELEASE += -O2 -march=armv7-a
QMAKE_CXXFLAGS_RELEASE += -O2 -march=armv7-ainclude(../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-linux-gnueabihf-gcc -lts
QMAKE_CXX = arm-linux-gnueabihf-g++ -lts
QMAKE_LINK = arm-linux-gnueabihf-g++ -lts
QMAKE_LINK_SHLIB = arm-linux-gnueabihf-g++ -lts# modifications to linux.conf
QMAKE_AR = arm-linux-gnueabihf-ar cqs
QMAKE_OBJCOPY = arm-linux-gnueabihf-objcopy
QMAKE_NM = arm-linux-gnueabihf-nm -P
QMAKE_STRIP = arm-linux-gnueabihf-strip
load(qt_config)
离线
cd quickwidgets/ && ( test -e Makefile || /opt/qt-everywhere-opensource-src-5.9.2/qtbase/bin/qmake -o Makefile /opt/qt-everywhere-opensource-src-5.9.2/qtdeclarative/examples/quick/quickwidgets/quickwidgets.pro ) && make -f Makefile
make[4]: 正在进入目录 `/opt/qt-everywhere-opensource-src-5.9.2/qtdeclarative/examples/quick/quickwidgets'
cd quickwidget/ && ( test -e Makefile || /opt/qt-everywhere-opensource-src-5.9.2/qtbase/bin/qmake -o Makefile /opt/qt-everywhere-opensource-src-5.9.2/qtdeclarative/examples/quick/quickwidgets/quickwidget/quickwidget.pro ) && make -f Makefile
make[5]: 正在进入目录 `/opt/qt-everywhere-opensource-src-5.9.2/qtdeclarative/examples/quick/quickwidgets/quickwidget'
arm-linux-gnueabi-g++ -Wl,-O1 -fuse-ld=gold -Wl,--enable-new-dtags -o quickwidget .obj/main.o .obj/fbitem.o .obj/quickwidget_plugin_import.o .obj/quickwidget_qml_plugin_import.o .obj/qrc_quickwidget.o .obj/moc_fbitem.o -L/opt/qt-everywhere-opensource-src-5.9.2/qtbase/plugins/platforms -lqlinuxfb -L/opt/qt-everywhere-opensource-src-5.9.2/qtbase/lib -lQt5ServiceSupport -lQt5EventDispatcherSupport -lQt5FontDatabaseSupport -lqtfreetype -lQt5FbSupport -lQt5InputSupport -lQt5DeviceDiscoverySupport -L/opt/qt-everywhere-opensource-src-5.9.2/qtimageformats/plugins/imageformats -lqicns -lqtga -lqtiff -lqwbmp -lqwebp -L/opt/qt-everywhere-opensource-src-5.9.2/qtbase/plugins/imageformats -lqico -lqjpeg -L/opt/qt-everywhere-opensource-src-5.9.2/qtdeclarative/plugins/qmltooling -lqmldbg_debugger -L/opt/qt-everywhere-opensource-src-5.9.2/qtdeclarative/lib -lqmldbg_inspector -lqmldbg_local -lqmldbg_messages -lqmldbg_native -lqmldbg_nativedebugger -lqmldbg_profiler -lqmldbg_quickprofiler -lqmldbg_server -lQt5PacketProtocol -lqmldbg_tcp -L/opt/qt-everywhere-opensource-src-5.9.2/qtbase/plugins/bearer -lqgenericbearer -lQt5QuickWidgets -lQt5Widgets -L/opt/qt-everywhere-opensource-src-5.9.2/qtdeclarative/qml/QtQuick.2 -lqtquick2plugin -lQt5Quick -lQt5Gui -lqtlibpng -lqtharfbuzz -lQt5Qml -lrt -lQt5Network -lQt5Core -lm -lqtpcre2 -ldl -lpthread
.obj/main.o:main.cpp:function void QQmlPrivate::createInto<FbItem>(void*): error: undefined reference to 'QQuickFramebufferObject::QQuickFramebufferObject(QQuickItem*)'
.obj/main.o:main.cpp:function .LTHUNK7: error: undefined reference to 'vtable for QQuickFramebufferObject'
/usr/lib/gcc-cross/arm-linux-gnueabi/4.7/../../../../arm-linux-gnueabi/bin/ld.gold: the vtable symbol may be undefined because the class is missing its key function
.obj/main.o:main.cpp:function QQmlPrivate::QQmlElement<FbItem>::~QQmlElement(): error: undefined reference to 'vtable for QQuickFramebufferObject'
/usr/lib/gcc-cross/arm-linux-gnueabi/4.7/../../../../arm-linux-gnueabi/bin/ld.gold: the vtable symbol may be undefined because the class is missing its key function
.obj/main.o:main.cpp:vtable for QQmlPrivate::QQmlElement<FbItem>: error: undefined reference to 'QQuickFramebufferObject::isTextureProvider() const'
.obj/main.o:main.cpp:vtable for QQmlPrivate::QQmlElement<FbItem>: error: undefined reference to 'QQuickFramebufferObject::textureProvider() const'
.obj/main.o:main.cpp:vtable for QQmlPrivate::QQmlElement<FbItem>: error: undefined reference to 'QQuickFramebufferObject::geometryChanged(QRectF const&, QRectF const&)'
.obj/main.o:main.cpp:vtable for QQmlPrivate::QQmlElement<FbItem>: error: undefined reference to 'QQuickFramebufferObject::updatePaintNode(QSGNode*, QQuickItem::UpdatePaintNodeData*)'
.obj/main.o:main.cpp:vtable for QQmlPrivate::QQmlElement<FbItem>: error: undefined reference to 'QQuickFramebufferObject::releaseResources()'
.obj/moc_fbitem.o:moc_fbitem.cpp:function FbItem::qt_metacall(QMetaObject::Call, int, void**): error: undefined reference to 'QQuickFramebufferObject::qt_metacall(QMetaObject::Call, int, void**)'
.obj/moc_fbitem.o:moc_fbitem.cpp:function FbItem::qt_metacast(char const*): error: undefined reference to 'QQuickFramebufferObject::qt_metacast(char const*)'
.obj/moc_fbitem.o:moc_fbitem.cpp:function .LTHUNK2: error: undefined reference to 'vtable for QQuickFramebufferObject'
/usr/lib/gcc-cross/arm-linux-gnueabi/4.7/../../../../arm-linux-gnueabi/bin/ld.gold: the vtable symbol may be undefined because the class is missing its key function
.obj/moc_fbitem.o:moc_fbitem.cpp:function FbItem::~FbItem(): error: undefined reference to 'vtable for QQuickFramebufferObject'
/usr/lib/gcc-cross/arm-linux-gnueabi/4.7/../../../../arm-linux-gnueabi/bin/ld.gold: the vtable symbol may be undefined because the class is missing its key function
.obj/moc_fbitem.o:moc_fbitem.cpp:typeinfo for FbItem: error: undefined reference to 'typeinfo for QQuickFramebufferObject'
.obj/moc_fbitem.o:moc_fbitem.cpp:vtable for FbItem: error: undefined reference to 'QQuickFramebufferObject::isTextureProvider() const'
.obj/moc_fbitem.o:moc_fbitem.cpp:vtable for FbItem: error: undefined reference to 'QQuickFramebufferObject::textureProvider() const'
.obj/moc_fbitem.o:moc_fbitem.cpp:vtable for FbItem: error: undefined reference to 'QQuickFramebufferObject::geometryChanged(QRectF const&, QRectF const&)'
.obj/moc_fbitem.o:moc_fbitem.cpp:vtable for FbItem: error: undefined reference to 'QQuickFramebufferObject::updatePaintNode(QSGNode*, QQuickItem::UpdatePaintNodeData*)'
.obj/moc_fbitem.o:moc_fbitem.cpp:vtable for FbItem: error: undefined reference to 'QQuickFramebufferObject::releaseResources()'
.obj/moc_fbitem.o:moc_fbitem.cpp:FbItem::staticMetaObject: error: undefined reference to 'QQuickFramebufferObject::staticMetaObject'
collect2: 错误: ld 返回 1
make[5]: *** [quickwidget] 错误 1
make[5]:正在离开目录 `/opt/qt-everywhere-opensource-src-5.9.2/qtdeclarative/examples/quick/quickwidgets/quickwidget'
make[4]: *** [sub-quickwidget-make_first] 错误 2
make[4]:正在离开目录 `/opt/qt-everywhere-opensource-src-5.9.2/qtdeclarative/examples/quick/quickwidgets'
make[3]: *** [sub-quickwidgets-make_first] 错误 2
make[3]:正在离开目录 `/opt/qt-everywhere-opensource-src-5.9.2/qtdeclarative/examples/quick'
make[2]: *** [sub-quick-make_first] 错误 2
make[2]:正在离开目录 `/opt/qt-everywhere-opensource-src-5.9.2/qtdeclarative/examples'
make[1]: *** [sub-examples-make_first] 错误 2
make[1]:正在离开目录 `/opt/qt-everywhere-opensource-src-5.9.2/qtdeclarative'
make: *** [module-qtdeclarative-make_first] 错误 2
unroot@ubuntu:/opt/qt-everywhere-opensource-src-5.9.2$
链接错误!
离线
被5.9.2折磨到了, 转战 5.4.1
sudo apt-get install make
sudo apt-get install g++
sudo apt-get install autoconf
sudo apt-get install m4
sudo apt-get install libtool
git clone https://github.com/kergoth/tslib.git
cd tslib
./autogen.sh
./configure --prefix=${PWD}/../_install --host=arm-linux-gnueabi
make;make install
如果出现了链接错误undefined reference to rpl_malloc,这样解决:
config.h.in里定义:
#undef malloc
#undef realloc
然后进入 qt-everywhere-opensource-src-5.4.1 执行
./configure \
-prefix /usr/local/qt5.4.1 \
-confirm-license \
-opensource \
-release \
-make libs \
-xplatform linux-arm-gnueabi-g++ \
-optimized-qmake \
-pch \
-qt-sql-sqlite \
-qt-libjpeg \
-qt-libpng \
-qt-zlib \
-tslib \
-no-opengl \
-no-sse2 \
-no-openssl \
-no-nis \
-no-cups \
-no-glib \
-no-dbus \
-no-xcb \
-no-xcursor -no-xfixes -no-xrandr -no-xrender \
-no-separate-debug-info \
-make examples -nomake tools -nomake tests -no-iconvmake
make install
离线
5.4.1 也不行,卧槽:
everywhere-opensource-src-5.4.1/qtbase/include/QtCore -I.moc -I/opt/_install/include -I/opt/qt-everywhere-opensource-src-5.4.1/qtbase/mkspecs/linux-arm-gnueabi-g++ -o .obj/wtf/DateMath.o wtf/DateMath.cpp
In file included from ./wtf/unicode/Unicode.h:34:0,
from ./wtf/text/ASCIIFastPath.h:31,
from ./wtf/text/WTFString.h:28,
from wtf/DateMath.h:54,
from wtf/DateMath.cpp:73:
./wtf/unicode/wchar/UnicodeWchar.h: 在函数‘bool WTF::Unicode::isAlphanumeric(UChar)’中:
./wtf/unicode/wchar/UnicodeWchar.h:136:58: 错误: ‘iswalnum’在此作用域中尚未声明
./wtf/unicode/wchar/UnicodeWchar.h: 在函数‘bool WTF::Unicode::isDigit(UChar)’中:
./wtf/unicode/wchar/UnicodeWchar.h:137:51: 错误: ‘iswdigit’在此作用域中尚未声明
./wtf/unicode/wchar/UnicodeWchar.h: 在函数‘bool WTF::Unicode::isLetter(UChar)’中:
./wtf/unicode/wchar/UnicodeWchar.h:138:52: 错误: ‘iswalpha’在此作用域中尚未声明
./wtf/unicode/wchar/UnicodeWchar.h: 在函数‘bool WTF::Unicode::isLower(UChar)’中:
./wtf/unicode/wchar/UnicodeWchar.h:139:51: 错误: ‘iswlower’在此作用域中尚未声明
./wtf/unicode/wchar/UnicodeWchar.h: 在函数‘bool WTF::Unicode::isPrintableChar(UChar)’中:
./wtf/unicode/wchar/UnicodeWchar.h:140:59: 错误: ‘iswprint’在此作用域中尚未声明
./wtf/unicode/wchar/UnicodeWchar.h: 在函数‘bool WTF::Unicode::isPunct(UChar)’中:
./wtf/unicode/wchar/UnicodeWchar.h:141:51: 错误: ‘iswpunct’在此作用域中尚未声明
./wtf/unicode/wchar/UnicodeWchar.h: 在函数‘bool WTF::Unicode::isSpace(UChar)’中:
./wtf/unicode/wchar/UnicodeWchar.h:142:51: 错误: ‘iswspace’在此作用域中尚未声明
./wtf/unicode/wchar/UnicodeWchar.h: 在函数‘bool WTF::Unicode::isUpper(UChar)’中:
./wtf/unicode/wchar/UnicodeWchar.h:143:51: 错误: ‘iswupper’在此作用域中尚未声明
./wtf/unicode/wchar/UnicodeWchar.h: 在函数‘UChar WTF::Unicode::foldCase(UChar)’中:
./wtf/unicode/wchar/UnicodeWchar.h:148:51: 错误: ‘towlower’在此作用域中尚未声明
./wtf/unicode/wchar/UnicodeWchar.h: 在函数‘UChar WTF::Unicode::toLower(UChar)’中:
./wtf/unicode/wchar/UnicodeWchar.h:149:50: 错误: ‘towlower’在此作用域中尚未声明
./wtf/unicode/wchar/UnicodeWchar.h: 在函数‘UChar WTF::Unicode::toUpper(UChar)’中:
./wtf/unicode/wchar/UnicodeWchar.h:150:50: 错误: ‘towupper’在此作用域中尚未声明
./wtf/unicode/wchar/UnicodeWchar.h: 在函数‘UChar WTF::Unicode::toTitleCase(UChar)’中:
./wtf/unicode/wchar/UnicodeWchar.h:151:54: 错误: ‘towupper’在此作用域中尚未声明
In file included from ./wtf/text/ASCIIFastPath.h:31:0,
from ./wtf/text/WTFString.h:28,
from wtf/DateMath.h:54,
from wtf/DateMath.cpp:73:
./wtf/unicode/Unicode.h: 在全局域:
./wtf/unicode/Unicode.h:39:1: 错误: static assertion failed: UCharIsTwoBytes
make[2]: *** [.obj/wtf/DateMath.o] 错误 1
make[2]:正在离开目录 `/opt/qt-everywhere-opensource-src-5.4.1/qtwebkit/Source/WTF'
make[1]: *** [sub-Source-WTF-WTF-pro-make_first-ordered] 错误 2
make[1]:正在离开目录 `/opt/qt-everywhere-opensource-src-5.4.1/qtwebkit'
make: *** [module-qtwebkit-make_first] 错误 2
unroot@ubuntu:/opt/qt-everywhere-opensource-src-5.4.1$
离线
根据这个帖子: qt5.5.1 移植4412的问题过程
把qtwebkit/Source/WTF/wtf/unicode/wchar/UnicodeWchar.h 改成酱紫:
#ifndef ANDROID
# include <wchar.h>
// typedef wchar_t UChar;
typedef unsigned short int UChar;
#else
typedef unsigned short int UChar;
#endif
离线
错误仍然没有解决!!!
离线
继续改,改成这样:
#ifndef ANDROID
//# include <wchar.h>
// typedef wchar_t UChar;
#include <wctype.h>
typedef unsigned short int UChar;
#else
typedef unsigned short int UChar;
#endif
这次没有编译错误了,缺ruby:
cd Source/JavaScriptCore/ && ( test -e Makefile.JavaScriptCore || /opt/qt-everywhere-opensource-src-5.4.1/qtbase/bin/qmake /opt/qt-everywhere-opensource-src-5.4.1/qtwebkit/Source/JavaScriptCore/JavaScriptCore.pro -o Makefile.JavaScriptCore ) && make -f Makefile.JavaScriptCore
make[2]: 正在进入目录 `/opt/qt-everywhere-opensource-src-5.4.1/qtwebkit/Source/JavaScriptCore'
( test -e Makefile.LLIntOffsetsExtractor || /opt/qt-everywhere-opensource-src-5.4.1/qtbase/bin/qmake /opt/qt-everywhere-opensource-src-5.4.1/qtwebkit/Source/JavaScriptCore/LLIntOffsetsExtractor.pro -o Makefile.LLIntOffsetsExtractor ) && make -f Makefile.LLIntOffsetsExtractor
make[3]: 正在进入目录 `/opt/qt-everywhere-opensource-src-5.4.1/qtwebkit/Source/JavaScriptCore'
ruby /opt/qt-everywhere-opensource-src-5.4.1/qtwebkit/Source/JavaScriptCore/offlineasm/generate_offset_extractor.rb llint/LowLevelInterpreter.asm LLIntDesiredOffsets.h
make[3]: ruby:命令未找到
make[3]: *** [LLIntDesiredOffsets.h] 错误 127
make[3]:正在离开目录 `/opt/qt-everywhere-opensource-src-5.4.1/qtwebkit/Source/JavaScriptCore'
make[2]: *** [sub-LLIntOffsetsExtractor-pro-make_first-ordered] 错误 2
make[2]:正在离开目录 `/opt/qt-everywhere-opensource-src-5.4.1/qtwebkit/Source/JavaScriptCore'
make[1]: *** [sub-Source-JavaScriptCore-JavaScriptCore-pro-make_first-ordered] 错误 2
make[1]:正在离开目录 `/opt/qt-everywhere-opensource-src-5.4.1/qtwebkit'
make: *** [module-qtwebkit-make_first] 错误 2
解决方案:
sudo apt-get install ruby
离线
真是好事多磨,又缺gperf:
perl -ne "print " css/CSSPropertyNames.in /opt/qt-everywhere-opensource-src-5.4.1/qtwebkit/Source/WebCore/css/SVGCSSPropertyNames.in > generated/CSSPropertyNames.in && cd generated && perl -I/opt/qt-everywhere-opensource-src-5.4.1/qtwebkit/Source/WebCore/bindings/scripts /opt/qt-everywhere-opensource-src-5.4.1/qtwebkit/Source/WebCore/css/makeprop.pl --defines "LANGUAGE_JAVASCRIPT=1 ENABLE_3D_RENDERING=1 ENABLE_BLOB=1 ENABLE_CANVAS_PATH=1 ENABLE_CHANNEL_MESSAGING=1 ENABLE_CSS_BOX_DECORATION_BREAK=1 ENABLE_CSS_COMPOSITING=1 ENABLE_CSS_EXCLUSIONS=1 ENABLE_CSS_FILTERS=1 ENABLE_CSS_IMAGE_SET=1 ENABLE_CSS_REGIONS=1 ENABLE_CSS_SHAPES=1 ENABLE_CSS_STICKY_POSITION=1 ENABLE_CSS_TRANSFORMS_ANIMATIONS_UNPREFIXED=1 ENABLE_DATALIST_ELEMENT=1 ENABLE_DETAILS_ELEMENT=1 ENABLE_DEVICE_ORIENTATION=1 ENABLE_DOWNLOAD_ATTRIBUTE=1 ENABLE_FAST_MOBILE_SCROLLING=1 ENABLE_FILTERS=1 ENABLE_FTPDIR=1 ENABLE_FULLSCREEN_API=1 ENABLE_GEOLOCATION=1 ENABLE_GESTURE_EVENTS=1 ENABLE_ICONDATABASE=1 ENABLE_IFRAME_SEAMLESS=1 ENABLE_INDEXED_DATABASE=1 ENABLE_INPUT_TYPE_COLOR=1 ENABLE_INSPECTOR=1 ENABLE_INSPECTOR_SERVER=1 ENABLE_JAVASCRIPT_DEBUGGER=1 ENABLE_LEGACY_NOTIFICATIONS=1 ENABLE_LEGACY_VIEWPORT_ADAPTION=1 ENABLE_LEGACY_VENDOR_PREFIXES=1 ENABLE_LEGACY_WEB_AUDIO=1 ENABLE_LINK_PREFETCH=1 ENABLE_METER_ELEMENT=1 ENABLE_MHTML=1 ENABLE_NOTIFICATIONS=1 ENABLE_ORIENTATION_EVENTS=1 ENABLE_PAGE_VISIBILITY_API=1 ENABLE_PROGRESS_ELEMENT=1 ENABLE_RESOLUTION_MEDIA_QUERY=1 ENABLE_REQUEST_ANIMATION_FRAME=1 ENABLE_SHARED_WORKERS=1 ENABLE_SMOOTH_SCROLLING=1 ENABLE_SQL_DATABASE=1 ENABLE_SUBPIXEL_LAYOUT=1 ENABLE_SVG=1 ENABLE_SVG_FONTS=1 ENABLE_TOUCH_ADJUSTMENT=1 ENABLE_TOUCH_EVENTS=1 ENABLE_VIDEO_TRACK=1 ENABLE_VIEW_MODE_CSS_MEDIA=1 ENABLE_WEB_SOCKETS=1 ENABLE_WEB_TIMING=1 ENABLE_WORKERS=1 ENABLE_XHR_TIMEOUT=1 ENABLE_VIDEO=1 ENABLE_GAMEPAD=1 ENABLE_TOUCH_SLIDER=1" --preprocessor "/opt/qt-everywhere-opensource-src-5.4.1/qtbase/bin/moc -E" css/CSSPropertyNames.in && rm -f CSSPropertyNames.in CSSPropertyNames.gperf
sh: 1: gperf: not found
calling gperf failed: 32512 at /opt/qt-everywhere-opensource-src-5.4.1/qtwebkit/Source/WebCore/css/makeprop.pl line 259.
make[3]: *** [generated/CSSPropertyNames.cpp] 错误 25
make[3]:正在离开目录 `/opt/qt-everywhere-opensource-src-5.4.1/qtwebkit/Source/WebCore'
make[2]: *** [sub-DerivedSources-pri-make_first-ordered] 错误 2
make[2]:正在离开目录 `/opt/qt-everywhere-opensource-src-5.4.1/qtwebkit/Source/WebCore'
make[1]: *** [sub-Source-WebCore-WebCore-pro-make_first-ordered] 错误 2
make[1]:正在离开目录 `/opt/qt-everywhere-opensource-src-5.4.1/qtwebkit'
make: *** [module-qtwebkit-make_first] 错误 2
解决方案:
sudo apt-get install gperf
离线
有错可以一次报完吗?
Can't exec "bison": 没有那个文件或目录 at /opt/qt-everywhere-opensource-src-5.4.1/qtwebkit/Source/WebCore/css/makegrammar.pl line 76.
Died at /opt/qt-everywhere-opensource-src-5.4.1/qtwebkit/Source/WebCore/css/makegrammar.pl line 84.
make[3]: *** [generated/CSSGrammar.cpp] 错误 2
make[3]:正在离开目录 `/opt/qt-everywhere-opensource-src-5.4.1/qtwebkit/Source/WebCore'
make[2]: *** [sub-DerivedSources-pri-make_first-ordered] 错误 2
make[2]:正在离开目录 `/opt/qt-everywhere-opensource-src-5.4.1/qtwebkit/Source/WebCore'
make[1]: *** [sub-Source-WebCore-WebCore-pro-make_first-ordered] 错误 2
make[1]:正在离开目录 `/opt/qt-everywhere-opensource-src-5.4.1/qtwebkit'
make: *** [module-qtwebkit-make_first] 错误 2
解决方案:
sudo apt-get install bison
离线
Qt WebEngine can currently only be built for Linux (GCC), Windows (MSVC 2013), OS X (XCode 5.1+) or Qt for Device Creation.
QtWebEngine will not be built.
make[1]:正在离开目录 `/opt/qt-everywhere-opensource-src-5.4.1/qtwebengine'
make[1]: 正在进入目录 `/opt/qt-everywhere-opensource-src-5.4.1/qtwebengine'
make[1]: 没有什么可以做的为 `first'。
make[1]:正在离开目录 `/opt/qt-everywhere-opensource-src-5.4.1/qtwebengine'
cd qttranslations/ && ( test -e Makefile || /opt/qt-everywhere-opensource-src-5.4.1/qtbase/bin/qmake /opt/qt-everywhere-opensource-src-5.4.1/qttranslations/qttranslations.pro -o Makefile ) && make -f Makefile
make[1]: 正在进入目录 `/opt/qt-everywhere-opensource-src-5.4.1/qttranslations'
/opt/qt-everywhere-opensource-src-5.4.1/qtbase/bin/qmake -o Makefile qttranslations.pro
make[1]:正在离开目录 `/opt/qt-everywhere-opensource-src-5.4.1/qttranslations'
make[1]: 正在进入目录 `/opt/qt-everywhere-opensource-src-5.4.1/qttranslations'
cd translations/ && ( test -e Makefile || /opt/qt-everywhere-opensource-src-5.4.1/qtbase/bin/qmake /opt/qt-everywhere-opensource-src-5.4.1/qttranslations/translations/translations.pro -o Makefile ) && make -f Makefile
make[2]: 正在进入目录 `/opt/qt-everywhere-opensource-src-5.4.1/qttranslations/translations'
/opt/qt-everywhere-opensource-src-5.4.1/qtbase/bin/qmake -o Makefile translations.pro
make[2]:正在离开目录 `/opt/qt-everywhere-opensource-src-5.4.1/qttranslations/translations'
make[2]: 正在进入目录 `/opt/qt-everywhere-opensource-src-5.4.1/qttranslations/translations'
make[2]: 没有什么可以做的为 `first'。
make[2]:正在离开目录 `/opt/qt-everywhere-opensource-src-5.4.1/qttranslations/translations'
make[1]:正在离开目录 `/opt/qt-everywhere-opensource-src-5.4.1/qttranslations'
cd qtdoc/ && ( test -e Makefile || /opt/qt-everywhere-opensource-src-5.4.1/qtbase/bin/qmake /opt/qt-everywhere-opensource-src-5.4.1/qtdoc/qtdoc.pro -o Makefile ) && make -f Makefile
make[1]: 正在进入目录 `/opt/qt-everywhere-opensource-src-5.4.1/qtdoc'
/opt/qt-everywhere-opensource-src-5.4.1/qtbase/bin/qmake -o Makefile qtdoc.pro
make[1]:正在离开目录 `/opt/qt-everywhere-opensource-src-5.4.1/qtdoc'
make[1]: 正在进入目录 `/opt/qt-everywhere-opensource-src-5.4.1/qtdoc'
cd doc/ && ( test -e Makefile || /opt/qt-everywhere-opensource-src-5.4.1/qtbase/bin/qmake /opt/qt-everywhere-opensource-src-5.4.1/qtdoc/doc/doc.pro -o Makefile ) && make -f Makefile
make[2]: 正在进入目录 `/opt/qt-everywhere-opensource-src-5.4.1/qtdoc/doc'
/opt/qt-everywhere-opensource-src-5.4.1/qtbase/bin/qmake -o Makefile doc.pro
make[2]:正在离开目录 `/opt/qt-everywhere-opensource-src-5.4.1/qtdoc/doc'
make[2]: 正在进入目录 `/opt/qt-everywhere-opensource-src-5.4.1/qtdoc/doc'
make[2]: 没有什么可以做的为 `first'。
make[2]:正在离开目录 `/opt/qt-everywhere-opensource-src-5.4.1/qtdoc/doc'
make[1]:正在离开目录 `/opt/qt-everywhere-opensource-src-5.4.1/qtdoc'
unroot@ubuntu:/opt/qt-everywhere-opensource-src-5.4.1$
终于编译完成!
离线