Native Build of 5.9.1 on Raspberry Pi Running Jessie
-
I've been experimenting with cross compiling on Ubuntu for the RPi and decided while I get things working I would let the Pi compile the latest Qt 5.9.1. I followed the combination of this post and this post. My configure command was this:
https://wiki.qt.io/Native_Build_of_Qt_5.4.1_on_a_Raspberry_Pi
When I checked on it this morning I was greeted with this:
g++ -c -pipe -O2 -std=c++11 -Wall -W -Wno-ignored-qualifiers -Wno-unused-parameter -Wno-unused-variable -Wno-deprecated-declarations -Wno-unused-function -Wno-reorder -D_REENTRANT -fPIC -DQT_NO_FOREACH -DASSIMP_BUILD_NO_OWN_ZLIB -DASSIMP_BUILD_NO_COMPRESSED_IFC -DASSIMP_BUILD_NO_Q3BSP_IMPORTER -DASSIMP_BUILD_NO_C4D_IMPORTER -DASSIMP_BUILD_NO_3MF_IMPORTER -DOPENDDL_STATIC_LIBARY -DQT_NO_NARROWING_CONVERSIONS_IN_CONNECT -DQT_USE_QSTRINGBUILDER -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -DQT_NO_DEBUG -DQT_BOOTSTRAP_LIB -DQT_VERSION_STR='"5.9.1"' -DQT_VERSION_MAJOR=5 -DQT_VERSION_MINOR=9 -DQT_VERSION_PATCH=1 -DQT_BOOTSTRAPPED -DQT_NO_CAST_TO_ASCII -DQT_ZLIB_LIB -I. -I../../src/3rdparty/assimp -I../../src/3rdparty/assimp/code -I../../src/3rdparty/assimp/include -I../../src/3rdparty/assimp/include/assimp/Compiler -I../../src/3rdparty/assimp/contrib/clipper -I../../src/3rdparty/assimp/contrib/ConvertUTF -I../../src/3rdparty/assimp/contrib/irrXML -I../../src/3rdparty/assimp/contrib/openddlparser/include -I../../src/3rdparty/assimp/contrib/poly2tri/poly2tri -I../../src/3rdparty/assimp/contrib/rapidjson/include -I../../src/3rdparty/assimp/contrib/unzip -I/home/pi/opt/qt5/qtbase/include -I/home/pi/opt/qt5/qtbase/include/QtCore -I/home/pi/opt/qt5/qtbase/include/QtCore/5.9.1 -I/home/pi/opt/qt5/qtbase/include/QtCore/5.9.1/QtCore -I/home/pi/opt/qt5/qtbase/include/QtXml -I/home/pi/opt/qt5/qtbase/include/QtXml/5.9.1 -I/home/pi/opt/qt5/qtbase/include/QtXml/5.9.1/QtXml -I/home/pi/opt/qt5/qtbase/include/QtZlib -I/home/pi/opt/qt5/qtbase/include/QtZlib/5.9.1 -I/home/pi/opt/qt5/qtbase/include/QtZlib/5.9.1/QtZlib -I/home/pi/opt/qt5/qtbase/mkspecs/linux-g++ -o .obj/IFCReaderGen2.o ../../src/3rdparty/assimp/code/IFCReaderGen2.cpp g++: internal compiler error: Killed (program cc1plus) Please submit a full bug report, with preprocessed source if appropriate. See <file:///usr/share/doc/gcc-4.9/README.Bugs> for instructions. Makefile:5732: recipe for target '.obj/IFCReaderGen1.o' failed make[3]: *** [.obj/IFCReaderGen1.o] Error 4 make[3]: *** Waiting for unfinished jobs.... make[3]: Leaving directory '/home/pi/opt/qt5/qt3d/tools/qgltf' Makefile:44: recipe for target 'sub-qgltf-make_first' failed make[2]: *** [sub-qgltf-make_first] Error 2 make[2]: Leaving directory '/home/pi/opt/qt5/qt3d/tools' Makefile:72: recipe for target 'sub-tools-make_first' failed make[1]: *** [sub-tools-make_first] Error 2 make[1]: Leaving directory '/home/pi/opt/qt5/qt3d' Makefile:492: recipe for target 'module-qt3d-make_first' failed make: *** [module-qt3d-make_first] Error 2 real 600m39.057s user 1073m20.060s sys 45m32.100s
The results of the make are rather large (9.5MB) but if you want to look you can download it from here
Thanks in advance for looking.
-
Hi,
In these cases (i.e. your compiler crashed), you would usually try to update it to something more recent.
-
I had run an update and upgrade a few days ago but running it just now came back with this:
Reading state information... Done Calculating upgrade... The following packages were automatically installed and are no longer required: libjbig-dev libjpeg9 liblcms2-dev liblzma-dev libtiffxx5 Use 'apt-get autoremove' to remove them. Done The following packages will be upgraded: libc-bin libc-dev-bin libc6 libc6-dbg libc6-dev libffi6 libmysqlclient-dev libmysqlclient18 libraspberrypi-bin libraspberrypi-dev libraspberrypi-doc libraspberrypi0 locales multiarch-support mysql-common raspberrypi-bootloader raspberrypi-kernel tar 18 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. Need to get 84.6 MB of archives. After this operation, 417 kB of additional disk space will be used.
I see the kernel is updating but I don't see gcc in the list of packages. Did I miss something or can you recommend what I could upgrade to to try another compile tonight?
-
You should list the available versions of gcc of your distribution.
-
Well it seems that the latest update did something or just running make again got it along farther. Now I'm getting some actual compile errors.
You asked which gcc my system has:
pi@raspberrypi:~/opt/qt5 $ gcc --version gcc (Raspbian 4.9.2-10) 4.9.2 Copyright (C) 2014 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. pi@raspberrypi:~/opt/qt5 $ g++ --version g++ (Raspbian 4.9.2-10) 4.9.2 Copyright (C) 2014 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
and here's the end of the make:
specs/linux-g++ -o .obj/unzip.o ../../src/3rdparty/assimp/contrib/unzip/unzip.c g++ -Wl,--gc-sections -Wl,-O1 -o ../../bin/qgltf .obj/qgltf.o .obj/3DSConverter.o .obj/3DSExporter.o .obj/3DSLoader.o .obj/ACLoader.o .obj/ASELoader.o .obj/ASEParser.o .obj/AssbinExporter.o .obj/AssbinLoader.o .obj/Assimp.o .obj/AssimpCExport.o .obj/AssxmlExporter.o .obj/B3DImporter.o .obj/BaseImporter.o .obj/BaseProcess.o .obj/Bitmap.o .obj/BlenderBMesh.o .obj/BlenderDNA.o .obj/BlenderLoader.o .obj/BlenderModifier.o .obj/BlenderScene.o .obj/BlenderTessellator.o .obj/BVHLoader.o .obj/C4DImporter.o .obj/CalcTangentsProcess.o .obj/COBLoader.o .obj/ColladaExporter.o .obj/ColladaLoader.o .obj/ColladaParser.o .obj/ComputeUVMappingProcess.o .obj/ConvertToLHProcess.o .obj/CreateAnimMesh.o .obj/CSMLoader.o .obj/D3MFImporter.o .obj/D3MFOpcPackage.o .obj/DeboneProcess.o .obj/DefaultIOStream.o .obj/DefaultIOSystem.o .obj/DefaultLogger.o .obj/DXFLoader.o .obj/Exporter.o .obj/FBXAnimation.o .obj/FBXBinaryTokenizer.o .obj/FBXConverter.o .obj/FBXDeformer.o .obj/FBXDocument.o .obj/FBXDocumentUtil.o .obj/FBXImporter.o .obj/FBXMaterial.o .obj/FBXMeshGeometry.o .obj/FBXModel.o .obj/FBXNodeAttribute.o .obj/FBXParser.o .obj/FBXProperties.o .obj/FBXTokenizer.o .obj/FBXUtil.o .obj/FindDegenerates.o .obj/FindInstancesProcess.o .obj/FindInvalidDataProcess.o .obj/FixNormalsStep.o .obj/GenFaceNormalsProcess.o .obj/GenVertexNormalsProcess.o .obj/glTFExporter.o .obj/glTFImporter.o .obj/HMPLoader.o .obj/IFCBoolean.o .obj/IFCCurve.o .obj/IFCGeometry.o .obj/IFCLoader.o .obj/IFCMaterial.o .obj/IFCOpenings.o .obj/IFCProfile.o .obj/IFCReaderGen1.o .obj/IFCReaderGen2.o .obj/IFCUtil.o .obj/Importer.o .obj/ImporterRegistry.o .obj/ImproveCacheLocality.o .obj/IRRLoader.o .obj/IRRMeshLoader.o .obj/IRRShared.o .obj/JoinVerticesProcess.o .obj/LimitBoneWeightsProcess.o .obj/LWOAnimation.o .obj/LWOBLoader.o .obj/LWOLoader.o .obj/LWOMaterial.o .obj/LWSLoader.o .obj/MakeVerboseFormat.o .obj/MaterialSystem.o .obj/MD2Loader.o .obj/MD3Loader.o .obj/MD5Loader.o .obj/MD5Parser.o .obj/MDCLoader.o .obj/MDLLoader.o .obj/MDLMaterialLoader.o .obj/MS3DLoader.o .obj/NDOLoader.o .obj/NFFLoader.o .obj/ObjExporter.o .obj/ObjFileImporter.o .obj/ObjFileMtlImporter.o .obj/ObjFileParser.o .obj/OFFLoader.o .obj/OgreBinarySerializer.o .obj/OgreImporter.o .obj/OgreMaterial.o .obj/OgreStructs.o .obj/OgreXmlSerializer.o .obj/OpenGEXExporter.o .obj/OpenGEXImporter.o .obj/OptimizeGraph.o .obj/OptimizeMeshes.o .obj/PlyExporter.o .obj/PlyLoader.o .obj/PlyParser.o .obj/PostStepRegistry.o .obj/PretransformVertices.o .obj/ProcessHelper.o .obj/Q3BSPFileImporter.o .obj/Q3BSPFileParser.o .obj/Q3BSPZipArchive.o .obj/Q3DLoader.o .obj/RawLoader.o .obj/RemoveComments.o .obj/RemoveRedundantMaterials.o .obj/RemoveVCProcess.o .obj/SceneCombiner.o .obj/ScenePreprocessor.o .obj/SGSpatialSort.o .obj/SIBImporter.o .obj/SkeletonMeshBuilder.o .obj/SMDLoader.o .obj/SortByPTypeProcess.o .obj/SpatialSort.o .obj/SplitByBoneCountProcess.o .obj/SplitLargeMeshes.o .obj/StandardShapes.o .obj/StepExporter.o .obj/STEPFileEncoding.o .obj/STEPFileReader.o .obj/STLExporter.o .obj/STLLoader.o .obj/Subdivision.o .obj/TargetAnimation.o .obj/TerragenLoader.o .obj/TextureTransform.o .obj/TriangulateProcess.o .obj/UnrealLoader.o .obj/ValidateDataStructure.o .obj/Version.o .obj/VertexTriangleAdjacency.o .obj/XFileExporter.o .obj/XFileImporter.o .obj/XFileParser.o .obj/XGLLoader.o .obj/clipper.o .obj/ConvertUTF.o .obj/irrXML.o .obj/DDLNode.o .obj/OpenDDLCommon.o .obj/OpenDDLExport.o .obj/OpenDDLParser.o .obj/Value.o .obj/shapes.o .obj/advancing_front.o .obj/cdt.o .obj/sweep.o .obj/sweep_context.o .obj/ioapi.o .obj/unzip.o -L/home/pi/opt/qt5/qtbase/lib -lQt5Bootstrap -lpthread .obj/IFCLoader.o: In function `Assimp::IFCImporter::InternReadFile(std::string const&, aiScene*, Assimp::IOSystem*)': IFCLoader.cpp:(.text+0x9540): undefined reference to `Assimp::IFC::GetSchema(Assimp::STEP::EXPRESS::ConversionSchema&)' collect2: error: ld returned 1 exit status Makefile:922: recipe for target '../../bin/qgltf' failed make[3]: *** [../../bin/qgltf] Error 1 make[3]: Leaving directory '/home/pi/opt/qt5/qt3d/tools/qgltf' Makefile:44: recipe for target 'sub-qgltf-make_first' failed make[2]: *** [sub-qgltf-make_first] Error 2 make[2]: Leaving directory '/home/pi/opt/qt5/qt3d/tools' Makefile:72: recipe for target 'sub-tools-make_first' failed make[1]: *** [sub-tools-make_first] Error 2 make[1]: Leaving directory '/home/pi/opt/qt5/qt3d' Makefile:492: recipe for target 'module-qt3d-make_first' failed make: *** [module-qt3d-make_first] Error 2 real 15m42.789s user 43m15.910s sys 1m21.500s
I just noticed that my original post didn't include my config. The config that I used was:
./config -v -opengl es2 -tslib -device linux-rasp-pi3-g++ -device-option CROSS_COMPILE=/usr/bin/ \ -opensource -confirm-license -optimized-qmake -reduce-exports -release -qt-pcre -no-pch \ -make libs -no-use-gold-linker -prefix /usr/local/qt5
And for completeness here's what my config.summary has:
Building on: linux-g++ (arm, CPU features: <none>) Building for: devices/linux-rasp-pi3-g++ (arm, CPU features: neon) Configuration: cross_compile compile_examples enable_new_dtags largefile neon shared rpath release c++11 c++14 concurrent dbus no-pkg-config mremap reduce_exports release_tools stl Build options: Mode ................................... release; optimized tools Optimize release build for size ........ no Building shared libraries .............. yes Using C++ standard ..................... C++14 Using gold linker ...................... no Using new DTAGS ........................ yes Using precompiled headers .............. no Using LTCG ............................. no Target compiler supports: NEON ................................. yes Build parts ............................ libs Qt modules and options: Qt Concurrent .......................... yes Qt D-Bus ............................... yes Qt D-Bus directly linked to libdbus .... no Qt Gui ................................. yes Qt Network ............................. yes Qt Sql ................................. yes Qt Testlib ............................. yes Qt Widgets ............................. yes Qt Xml ................................. yes Support enabled for: Using pkg-config ....................... no QML debugging .......................... yes udev ................................... yes Using system zlib ...................... yes Qt Core: DoubleConversion ....................... yes Using system DoubleConversion ........ no GLib ................................... no iconv .................................. no ICU .................................... yes Logging backends: journald ............................. no syslog ............................... no slog2 ................................ no Using system PCRE2 ..................... no Qt Network: getaddrinfo() .......................... yes getifaddrs() ........................... yes IPv6 ifname ............................ yes libproxy ............................... no OpenSSL ................................ yes Qt directly linked to OpenSSL ........ no SCTP ................................... no Use system proxies ..................... yes Qt Sql: DB2 (IBM) .............................. no InterBase .............................. no MySql .................................. yes OCI (Oracle) ........................... no ODBC ................................... no PostgreSQL ............................. yes SQLite2 ................................ yes SQLite ................................. yes Using system provided SQLite ......... no TDS (Sybase) ........................... yes Qt Gui: Accessibility .......................... yes FreeType ............................... yes Using system FreeType ................ no HarfBuzz ............................... yes Using system HarfBuzz ................ no Fontconfig ............................. no Image formats: GIF .................................. yes ICO .................................. yes JPEG ................................. yes Using system libjpeg ............... yes PNG .................................. yes Using system libpng ................ yes EGL .................................... yes OpenVG ................................. no OpenGL: Desktop OpenGL ....................... no OpenGL ES 2.0 ........................ yes OpenGL ES 3.0 ........................ no OpenGL ES 3.1 ........................ no Session Management ..................... yes Features used by QPA backends: evdev .................................. yes libinput ............................... no INTEGRITY HID .......................... no mtdev .................................. no tslib .................................. yes xkbcommon-evdev ........................ no QPA backends: DirectFB ............................... no EGLFS .................................. yes EGLFS details: EGLFS i.Mx6 .......................... no EGLFS i.Mx6 Wayland .................. no EGLFS EGLDevice ...................... no EGLFS GBM ............................ no EGLFS Mali ........................... no EGLFS Raspberry Pi ................... yes EGL on X11 ........................... no LinuxFB ................................ yes VNC .................................... yes Mir client ............................. no X11: Using system-provided XCB libraries .. yes EGL on X11 ........................... no Xinput2 .............................. yes XCB XKB .............................. yes XLib ................................. yes XCB render ........................... yes XCB GLX .............................. yes XCB Xlib ............................. yes Using system-provided xkbcommon ...... no Qt Widgets: GTK+ ................................... no Styles ................................. Fusion Windows Qt PrintSupport: CUPS ................................... yes Qt SerialBus: Socket CAN ............................. yes Socket CAN FD .......................... yes QtXmlPatterns: XML schema support ..................... yes Qt QML: QML interpreter ........................ yes QML network support .................... yes Qt Quick: Direct3D 12 ............................ no AnimatedImage item ..................... yes Canvas item ............................ yes Support for Qt Quick Designer .......... yes Flipable item .......................... yes GridView item .......................... yes ListView item .......................... yes Path support ........................... yes PathView item .......................... yes Positioner items ....................... yes ShaderEffect item ...................... yes Sprite item ............................ yes Qt Gamepad: SDL2 ................................... no Qt 3D: Assimp ................................. yes System Assimp .......................... no Output Qt3D Job traces ................. no Output Qt3D GL traces .................. no Qt 3D GeometryLoaders: Autodesk FBX ........................... no Qt Wayland Drivers: EGL .................................... yes Raspberry Pi ........................... yes XComposite EGL ......................... no XComposite GLX ......................... no DRM EGL ................................ no libhybris EGL .......................... no Qt Wayland Client ........................ yes Qt Wayland Compositor .................... yes Qt Bluetooth: BlueZ .................................. no BlueZ Low Energy ....................... no Linux Crypto API ....................... no Qt Sensors: sensorfw ............................... no Qt Multimedia: ALSA ................................... yes GStreamer 1.0 .......................... no GStreamer 0.10 ......................... no Video for Linux ........................ yes OpenAL ................................. no PulseAudio ............................. no Resource Policy (libresourceqt5) ....... no Windows Audio Services ................. no DirectShow ............................. no Windows Media Foundation ............... no Qt Quick Controls 2: Styles ................................. Default Material Universal Qt Quick Templates 2: Hover support .......................... yes Qt Location: Gypsy GPS Daemon ....................... no WinRT Geolocation API .................. no Qt WebEngine: Embedded build ......................... yes Pepper Plugins ......................... no Printing and PDF ....................... no Proprietary Codecs ..................... no Spellchecker ........................... yes WebRTC ................................. no Using system ninja ..................... no ALSA ................................... yes PulseAudio ............................. no System libraries: ICU .................................. no libwebp and libwebpdemux ............. no Opus ................................. no ffmpeg ............................... no Note: Also available for Linux: linux-clang linux-icc Note: -optimized-tools is not useful in -release mode. pi@raspberrypi:~/opt/qt5 $
-
That's a strange error from a 3rdparty... It looks like there's a class from ASSIMP that hasn't been compiled.
In any case, I'd update the Qt repository to see if there's anything related to ASSIMP.
Just in case, if you don't plan on using Qt3D, you should consider building only the modules you currently need and then add others later on when needed.