Qt 5.2 RC1“执行格式错误”:虚拟 Ubuntu 13.04 上的 android 部署
Posted
技术标签:
【中文标题】Qt 5.2 RC1“执行格式错误”:虚拟 Ubuntu 13.04 上的 android 部署【英文标题】:Qt 5.2 RC1 "Exec format error": android deployment on virtual Ubuntu 13.04 【发布时间】:2013-12-03 08:52:07 【问题描述】:我现在尝试了三周来让一个简单的 Hello World 应用程序在 AVD (arm) 上运行。在 Windows(64 位)下没有问题,但我想使用 Ubuntu 13.04 LTS(32 位)和 Qt 5.2 RC1 通过 VirtualBox 创建一个虚拟工作区。请不要告诉我原生使用 Qt,我知道它比较慢等等,这个工作区应该可以在多台计算机上工作,而无需每次都进行新的 Qt 设置。
我添加了 SDK、NDK、Ant 和 OpenJDK,如 this documentation 中所述。我尝试了一个 Qt Designer GUI,包括一个按钮和一个复选框,此外还有this example。
结果总是一样的:
:-1: Fehler: error trying to exec '/opt/android-ndk-r9b/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.8/../../../../arm-linux-androideabi/bin/as': execv: Exec format error :-1: Fehler: [main.o] Error 1
完整的编译报告:
14:55:19: Führe Schritte für Projekt accelbubble aus... 14:55:19: Starte "/usr/bin/make" clean rm -f qrc_accelbubble.cpp rm -f main.o qrc_accelbubble.o rm -f *~ core *.core 14:55:19: Der Prozess "/usr/bin/make" wurde normal beendet. 14:55:19: Unveränderte Konfiguration, qmake-Schritt wird übersprungen. 14:55:19: Starte "/usr/bin/make" /opt/android-ndk-r9b/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86/bin/arm-linux-androideabi-g++ -c -Wno-psabi -march=armv5te -mtune=xscale -msoft-float -ffunction-sections -funwind-tables -fstack-protector -fno-short-enums -DANDROID -Wa,--noexecstack -std=gnu++0x -g -g -gdwarf-2 -marm -O0 -fno-omit-frame-pointer -Wall -Wno-psabi -W -D_REENTRANT -fPIE -DQT_OS_ANDROID_GCC_48_WORKAROUND -DQT_QML_DEBUG -DQT_DECLARATIVE_DEBUG -DQT_QUICK_LIB -DQT_SVG_LIB -DQT_QML_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -DQT_SENSORS_LIB -DQT_NETWORK_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I/opt/Qt5.2.0/5.2.0-rc1/android_armv5/mkspecs/android-g++ -I../accelbubble -I/opt/Qt5.2.0/5.2.0-rc1/android_armv5/include -I/opt/Qt5.2.0/5.2.0-rc1/android_armv5/include/QtQuick -I/opt/Qt5.2.0/5.2.0-rc1/android_armv5/include/QtSvg -I/opt/Qt5.2.0/5.2.0-rc1/android_armv5/include/QtQml -I/opt/Qt5.2.0/5.2.0-rc1/android_armv5/include/QtWidgets -I/opt/Qt5.2.0/5.2.0-rc1/android_armv5/include/QtXml -I/opt/Qt5.2.0/5.2.0-rc1/android_armv5/include/QtSensors -I/opt/Qt5.2.0/5.2.0-rc1/android_armv5/include/QtNetwork -I/opt/Qt5.2.0/5.2.0-rc1/android_armv5/include/QtGui -I/opt/Qt5.2.0/5.2.0-rc1/android_armv5/include/QtCore -I. -I/opt/android-ndk-r9b/sources/cxx-stl/gnu-libstdc++/4.8/include -I/opt/android-ndk-r9b/sources/cxx-stl/gnu-libstdc++/4.8/libs/armeabi/include -I/opt/android-ndk-r9b/platforms/android-9/arch-arm/usr/include -I. -o main.o ../accelbubble/main.cpp arm-linux-androideabi-g++: error trying to exec '/opt/android-ndk-r9b/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.8/../../../../arm-linux-androideabi/bin/as': execv: Exec format error make: *** [main.o] Error 1 14:55:25: Der Prozess "/usr/bin/make" wurde mit dem Rückgabewert 2 beendet. Fehler beim Erstellen/Deployment des Projekts accelbubble(Kit: Android für armeabi (GCC 4.8, Qt 5.2.0)) Bei der Ausführung von Schritt 'Make' 14:55:25: Verstrichene Zeit: 00:06.
我以 root 身份运行 Qt Creator。我在各种论坛上搜索了这个问题,但找不到任何解决方案,我所做的一切最终都会再次出现这个错误,也许你可以帮助我。如果您需要更多信息,请告诉我。
问候, 克莱门斯
【问题讨论】:
为表示您的问题已解决,您需要在下方发布答案,然后将其标记为“已接受”并在其旁边打上绿色复选标记。 【参考方案1】:我遇到了类似的问题。我的问题出在 ndk 文件夹中。我以错误的方式提取了下载的tar.bz2
文件,导致链接断开。尝试再次下载文件,检查 md5 和,使用 gui 存档管理器解压缩文件,最后调整 qtcreator->tools->options->Android 中的 ndk 文件夹。希望这会有所帮助
【讨论】:
以上是关于Qt 5.2 RC1“执行格式错误”:虚拟 Ubuntu 13.04 上的 android 部署的主要内容,如果未能解决你的问题,请参考以下文章