目前,我们正在开发QT,用于在AM1808处理器上运行的硬件的应用程序开发 .
目前,我们使用QT创建者开发了我们的应用程序,编译器版本为Qt 4.8.7 .
我们计划用Qt 5.7升级它,为此,我们从中下载相应的包
我们成功下载了这个,现在需要根据我们当前的arm工具链进行配置 .
我们修改了qmake.conf,如下所示,
#
# qmake configuration for building with arm-linux-gnueabi-g++
#
MAKEFILE_GENERATOR = UNIX
CONFIG += incremental
QMAKE_INCREMENTAL_STYLE = sublib
include(../common/linux.conf)
include(../common/gcc-base-unix.conf)
include(../common/g++-unix.conf)
// modifications to g++.conf
//QMAKE_CC = arm-linux-gnueabi-gcc
//QMAKE_CXX = arm-linux-gnueabi-g++
//QMAKE_LINK = arm-linux-gnueabi-g++
//QMAKE_LINK_SHLIB = arm-linux-gnueabi-g++
// modifications to linux.conf
//QMAKE_AR = arm-linux-gnueabi-ar cqs
//QMAKE_OBJCOPY = arm-linux-gnueabi-objcopy
//QMAKE_NM = arm-linux-gnueabi-nm -P
//QMAKE_STRIP = arm-linux-gnueabi-strip
QMAKE_CC = arm-none-linux-gnueabi-gcc
QMAKE_CXX = arm-none-linux-gnueabi-g++
QMAKE_LINK = arm-none-linux-gnueabi-g++
QMAKE_LINK_SHLIB = arm-none-linux-gnueabi-g++
QMAKE_AR = arm-none-linux-gnueabi-ar cqs
QMAKE_OBJCOPY = arm-none-linux-gnueabi-objcopy
QMAKE_STRIP = arm-none-linux-gnueabi-strip
load(qt_config)
之后,我们运行config命令./configure -opensource -confirm-license -prefix / usr / local / Qt5 -no-pch -xplatform linux-arm-gnueabi-g
但是我们发现了以下错误,
系统架构:'arm'主机架构:'i386'arm-none-linux-gnueabi-g -c -fvisibility = hidden fvisibility.c启用符号可见性控制 .
cc1plus:错误:无法识别的命令行选项'-fuse-ld = gold'arm-none-linux-gnueabi-g -o libtest.so -shared -Wl,-Bsymbolic-functions -fPIC bsymbolic_functions.c bsymbolic_functions.c:2: 2:错误:#error“此架构上的符号功能绑定可能会被破坏,禁用它(请参阅QTBUG-36129) . ”
符号功能绑定已禁用 . 检查C 14 ......
arm-none-linux-gnueabi-g -c -pipe -O2 -std = gnu 1y -Wall -W -fPIC -I . -I ../../../ mkspecs / linux-arm-gnueabi-g -o c 14.o c 14.cpp
cc1plus:错误:无法识别的命令行选项'-std = gnu 1y'make:*** [c 14.o]错误1
C 14禁用 .
检查默认C标准版... arm-none-linux-gnueabi-g -pipe -O2 -Wall -W -fPIC -I . -I ../../../ mkspecs / linux-arm-gnueabi-g -o c default.ii -E c default.cpp
默认C标准版已启用 .
检查64位std :: atomic ... arm-none-linux-gnueabi-g -c -pipe -O2 -std = gnu 11 -Wall -W -fPIC -I . -I ../../../ mkspecs / linux-arm-gnueabi-g -o atomic64.o atomic64.cpp
cc1plus:错误:无法识别的命令行选项'-std = gnu 11'
make:*** [atomic64.o]错误1
64位std :: atomic禁用 .
检查64位std :: atomic in -latomic ... arm-none-linux-gnueabi-g -c -pipe -O2 -std = gnu 11 -Wall -W -fPIC -I . -I ../../../ mkspecs / linux-arm-gnueabi-g -o atomic64.o atomic64.cpp
cc1plus:错误:无法识别的命令行选项'-std = gnu 11'
make:*** [atomic64.o]错误1
64位std :: atomic in -latomic已禁用 .
为函数指针检查std :: atomic ... arm-none-linux-gnueabi -g -c -pipe -O2 -std = gnu 11 -Wall -W -fPIC -I . -I ../../../ mkspecs / linux-arm-gnueabi-g -o atomicfptr.o atomicfptr.cpp cc1plus:错误:无法识别的命令行选项'-std = gnu 11'
make:*** [atomicfptr.o]错误1
禁用了函数指针的std :: atomic .
错误:检测到函数指针失败的std :: atomic实现 .
请应用与标准库供应商相对应的补丁,可在/opt/qt-everywhere-opensource-src-5.7.1/qtbase/config.tests/common/atomicfptr中找到
所以,请建议我们正确的方法来编译这个qt5版本 .