我正在尝试编译嵌入式ARM的Qt。我已按照here和here的说明进行操作。我正在使用最新的Angstrom工具链和qt-embedded-linux-opensource-src-4.5.3,我使用的是Ubuntu 10.10 x86。
我过去的步骤:
为我的工具链配置了qws / linux-arm-g ++ / qmake.conf文件。这是内容:
#
# qmake configuration for building with arm-linux-g++
#
include(../../common/g++.conf)
include(../../common/linux.conf)
include(../../common/qws.conf)
# modifications to g++.conf
QMAKE_CC = arm-angstrom-linux-gnueabi-gcc
QMAKE_CXX = arm-angstrom-linux-gnueabi-g++
QMAKE_LINK = arm-angstrom-linux-gnueabi-g++
QMAKE_LINK_SHLIB = arm-angstrom-linux-gnueabi-g++
# modifications to linux.conf
QMAKE_AR = arm-angstrom-linux-gnueabi-ar cqs
QMAKE_OBJCOPY = arm-angstrom-linux-gnueabi-objcopy
QMAKE_STRIP = arm-angstrom-linux-gnueabi-strip
load(qt_config)
设置我的工具链路径:
export PATH=/home/olcay/angstrom/arm/bin:$PATH
配置qt:
./configure -arch arm -little-endian -xplatform qws/linux-arm-g++
运行make。
在运行时,我收到此错误:
make[1]: Entering directory `/home/olcay/qt-embedded/src/corelib'
arm-angstrom-linux-gnueabi-g++ -c -pipe -fno-exceptions -O2 -Wall -W -D_REENTRANT -fPIC -DQT_SHARED -DQT_BUILD_CORE_LIB -DQT_NO_USING_NAMESPACE -DQT_NO_CAST_TO_ASCII -DQT_ASCII_CAST_WARNINGS -DQT3_SUPPORT -DQT_MOC_COMPAT -DHB_EXPORT=Q_CORE_EXPORT -DQT_NO_DEBUG -I../../mkspecs/qws/linux-arm-g++ -I. -I../../include -I../../include/QtCore -I.rcc/release-shared-emb-arm -Iglobal -I../3rdparty/zlib -I../3rdparty/harfbuzz/src -I.moc/release-shared-emb-arm -o .obj/release-shared-emb-arm/qatomic_arm.o arch/arm/qatomic_arm.cpp
/home/olcay/angstrom/arm/bin/arm-angstrom-linux-gnueabi-g++: 1: ELF: not found
/home/olcay/angstrom/arm/bin/arm-angstrom-linux-gnueabi-g++: 2: Syntax error: word unexpected (expecting ")")
make[1]: *** [.obj/release-shared-emb-arm/qatomic_arm.o] Error 2
make[1]: Leaving directory `/home/olcay/qt-embedded/src/corelib'
make: *** [sub-corelib-make_default-ordered] Error 2
我还注意到,虽然在make中有一个警告和相同的错误行:
The system floating point format could not be detected.
This may cause data to be generated in a wrong format
Turn on verbose messaging (-v) to see the final report.
/home/olcay/angstrom/arm/bin/arm-angstrom-linux-gnueabi-g++: 1: ELF: not found
/home/olcay/angstrom/arm/bin/arm-angstrom-linux-gnueabi-g++: 2: Syntax error: word unexpected (expecting ")")
将配置行更改为@Luca Carlon描述并没有解决问题。
请帮帮我! 提前谢谢。
答案 0 :(得分:2)
我注意到我已经下载了64位主机平台的Angstrom工具链,但我使用的是32位主机。下载正确的工具链后,我设法编译Qt。我发现当您尝试运行不是为您的体系结构构建的应用程序时,会发生“未找到ELF”错误。
答案 1 :(得分:0)
用-embedded arm替换-arch arm,如果你想构建Qt Embedded,请再试一次。