Unable to cross compile QT 5.5.1 for aarch64; aarch64-linux-gnu-ar fails with error
-
I get the below error when I cross compile QT on host centos and target aarch64
configure executed successfully.
config options:
/local/goli/workspace/070422/rh/TerminalProxy/Vendor/Qt/5.5.1/aarch64/src/qtbase/configure -top-level -v -prefix /local/goli/workspace/070422/rh/TerminalProxy/Vendor/Qt/5.5.1/aarch64/out -xplatform aarch64-linux-gnu-g++ -qt-xcb -qt-libpng -sysroot /local/goli/workspace/debian_aarch64_sysroot/cross-sysroot/ -device-option CROSS_COMPILE=/opt/gcc/aarch64-4.8.3.2014.04/bin/aarch64-linux-gnu- -release -opensource -confirm-license -nomake tests -nomake examples -no-icu -no-cups -no-nis -no-pch -no-eglfs -no-directfb -no-linuxfb -no-kms -no-mtdev -no-harfbuzz -no-sql-mysql -qt-libjpeg -pkg-config
config is successful but make failed after building few with below error:
opt/gcc/aarch64-4.8.3.2014.04/bin/aarch64-linux-gnu-ar libQt5PlatformSupport.a .obj/qunixeventdispatcher.o .obj/qgenericunixeventdispatcher.o .obj/qfbscreen.o .obj/qfbbackingstore.o .obj/qfbwindow.o .obj/qfbcursor.o .obj/qfbvthandler.o .obj/qbasicfontdatabase.o .obj/qfontengine_ft.o .obj/qfontconfigdatabase.o .obj/qfontenginemultifontconfig.o .obj/qevdevmousehandler.o .obj/qevdevmousemanager.o .obj/qevdevkeyboardhandler.o .obj/qevdevkeyboardmanager.o .obj/qevdevtouchhandler.o .obj/qevdevtouchmanager.o .obj/qevdevtablet.o .obj/qdevicediscovery_static.o .obj/qgenericunixservices.o .obj/qgenericunixthemes.o .obj/qaccessiblebridgeutils.o .obj/application.o .obj/bridge.o .obj/cache.o .obj/struct_marshallers.o .obj/constant_mappings.o .obj/dbusconnection.o .obj/atspiadaptor.o .obj/qdbusmenuadaptor.o .obj/qdbusmenutypes.o .obj/qdbusmenuconnection.o .obj/qdbusplatformmenu.o .obj/qdbustrayicon.o .obj/qdbustraytypes.o .obj/qstatusnotifieritemadaptor.o .obj/qxdgnotificationproxy.o .obj/moc_qunixeventdispatcher_qpa_p.o .obj/moc_qfbscreen_p.o .obj/moc_qfbcursor_p.o .obj/moc_qfbvthandler_p.o .obj/moc_qevdevmousehandler_p.o .obj/moc_qevdevmousemanager_p.o .obj/moc_qevdevkeyboardhandler_p.o .obj/moc_qevdevkeyboardmanager_p.o .obj/moc_qevdevtouchhandler_p.o .obj/moc_qevdevtouchmanager_p.o .obj/moc_qevdevtablet_p.o .obj/moc_qdevicediscovery_p.o .obj/moc_qdevicediscovery_static_p.o .obj/moc_application_p.o .obj/moc_bridge_p.o .obj/moc_cache_p.o .obj/moc_dbusconnection_p.o .obj/moc_atspiadaptor_p.o .obj/moc_qdbusmenuadaptor_p.o .obj/moc_qdbusmenuconnection_p.o .obj/moc_qdbusplatformmenu_p.o .obj/moc_qdbustrayicon_p.o .obj/moc_qstatusnotifieritemadaptor_p.o .obj/moc_qxdgnotificationproxy_p.o .obj/socket_interface.o .obj/bus_interface.o .obj/cache_adaptor.o .obj/deviceeventcontroller_adaptor.o .obj/moc_socket_interface.o .obj/moc_bus_interface.o .obj/moc_cache_adaptor.o .obj/moc_deviceeventcontroller_adaptor.o
/opt/gcc/aarch64-4.8.3.2014.04/bin/aarch64-linux-gnu-ar: invalid option -- Q
Note:
I have proper sys root. generated using cross-sysroot(python package)
cross compiler for aarch64 builds c++ code; picked from linaro.
building from sources. version: 5.5.1 -
Edit 1:
looks like the command is treating libQt5platformsupport.a as argument. when i renamed libQt5platformmsupport.a tp platformsupport.a. I pass the above error and end up withbelpw error:
/opt/gcc/aarch64-4.8.3.2014.04/bin/aarch64-linux-gnu-ar: two different operation options specified
-
Hi and welcome to devnet,
You seem to be mixing Debian's cross-compiler with something else.
What is exactly your setup ?
-
Thank you for taking time to respond.
Figured out the error. QT configure script is not auto populating the parameters required. I have provided -cr as arguments to AR command /opt/gcc/aarch64-4.8.3.2014.04/bin/aarch64-linux-gnu-ar..
/opt/gcc/aarch64-4.8.3.2014.04/bin/aarch64-linux-gnu-ar -cr