Cannot build static arm-linux version using Qt5.0
-
Hello all,
I was trying to build static arm-linux version using Qt5.0, but failed in process.
By the way, I have complied the Qt5.0 alpha version and succeed before.Here is my enviroment:
OS: Ubuntu 10.04.4
platform: arm freescale imx51and here are my steps:
- download source code from here: http://qt-project.org/downloads
- unzip this file
- set the configure
here are my configure:
./configure -prefix /usr/local/Qt5.0.0_static_arm -developer-build -opensource -static -xplatform linux-g++-mx -nomake examples -verbose -eglfs -opengl es2 -liconv -arch arm -no-xcb -confirm-license
it seemed ok at here, at least there was no error.
- make
There were some questions when making:
a.cannot find -lqxcb
when building the part examples of qtbase/qtsvg/qtxmlpattern, it will appear this message.
Therefore, I modified the makefile to avoid building this part, for exampleoriginal makefile in qtbase/qtsvg/qtxmlpattern :
make_first: sub-src-make_first sub-examples-make_first sub-tests-make_first FORCEand I modified to become this:
make_first: sub-src-make_first FORCEAlthough it can building success fully, but I still want to know the better solution.
b. target architecture error
When building the folder qtjsbackend, I met a new problem, the error message look like this:
make[3]: Entering directory
/Space/Qt5.0.0/qt-everywhere-opensource-src-5.0.0/qtjsbackend/src/v8' arm-none-linux-gnueabi-g++ -c -O2 -pipe -mcpu=cortex-a8 -mfpu=neon -mfloat-abi=softfp -fPIC -g -w -fvisibility=hidden -fvisibility-inlines-hidden -D_REENTRANT -fPIC -DQT_NO_LIBUDEV -DQT_NO_XCB -DQT_BUILD_V8_LIB -DQT_BUILDING_QT -DQT_NO_CAST_TO_ASCII -DQT_ASCII_CAST_WARNINGS -DQT_MOC_COMPAT -DQT_USE_QSTRINGBUILDER -DQT_DEPRECATED_WARNINGS -DQT_DISABLE_DEPRECATED_BEFORE=0x050000 -DENABLE_DEBUGGER_SUPPORT -DENABLE_VMSTATE_TRACKING -DENABLE_LOGGING_AND_PROFILING -DDEBUG -DV8_ENABLE_CHECKS -DOBJECT_PRINT -DENABLE_DISASSEMBLER -DV8_TARGET_ARCH_IA32 -DQT_NO_EXCEPTIONS -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -I/Space/Qt5.0.0/qt-everywhere-opensource-src-5.0.0/qtbase/mkspecs/linux-g++-mx -I. -I../../include -I../../include/QtV8 -I../../include/QtV8/5.0.0 -I../../include/QtV8/5.0.0/QtV8 -I../3rdparty/v8/src -I/Space/ltib2/ltib/rootfs/usr/include -I/Space/ltib2/ltib/rootfs/usr/include/glib-2.0 -I/Space/ltib2/ltib/rootfs/usr/lib/glib-2.0/include -I/Space/ltib2/ltib/rootfs/usr/include/gstreamer-0.10 -I/Space/ltib2/ltib/rootfs/usr/include/libxml2 -I/Space/ltib2/ltib/rootfs/usr/include/freetype2 -o .obj/debug-static/accessors.o ../3rdparty/v8/src/accessors.cc In file included from ../3rdparty/v8/src/v8globals.h:31, from ../3rdparty/v8/src/v8.h:53, from ../3rdparty/v8/src/accessors.cc:28: ../3rdparty/v8/src/globals.h:113:2: error: #error Target architecture ia32 is only supported on ia32 host In file included from ../3rdparty/v8/src/v8utils.h:32, from ../3rdparty/v8/src/v8.h:56, from ../3rdparty/v8/src/accessors.cc:28: ../3rdparty/v8/src/platform.h:117: note: the mangling of 'va_list' has changed in GCC 4.4 make[3]: *** [.obj/debug-static/accessors.o] Error 1 make[3]: Leaving directory
/Space/Qt5.0.0/qt-everywhere-opensource-src-5.0.0/qtjsbackend/src/v8'
make[2]: *** [sub-v8-make_first-ordered] Error 2
make[2]: Leaving directory/Space/Qt5.0.0/qt-everywhere-opensource-src-5.0.0/qtjsbackend/src' make[1]: *** [sub-src-make_first] Error 2 make[1]: Leaving directory
/Space/Qt5.0.0/qt-everywhere-opensource-src-5.0.0/qtjsbackend'
make: *** [module-qtjsbackend-make_first] Error 2It seemed that I set wrong platform in the configure, but my configure has include the parameter
"-arch arm", so I am confused that why appear this error.I have searched from google and here, but it seems that no similar problems as mine, so I post at here and need your help.
If there is any question that I don't say clearly or wrong, please let me know.
Thanks for your help!