Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

Cross compile QT5.7 for ARM



  • Hi ,
    I am trying to cross compile qt-everywhere-opensource-src-5.7.1 .
    While compiling the code i am getting error like:

    libQt5Core.so.5.7.1: version node not found for symbol qt_version_tag@Qt_5.6
    /home/antriksh/gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/6.2.1/../../../../arm-linux-gnueabihf/bin/ld: failed to set dynamic section sizes: Bad value
    collect2: error: ld returned 1 exit status

    Let me know the probable root cause for the same and how can i solve this.

    Regards,
    Biswajit


  • Lifetime Qt Champion

    @Biswajit_1984 Looks like you're mixing Qt 5.7 and 5.6.
    Do you have Qt 5.6 stuff in your PATH, LD_LIBRARY_PATH?
    How do you configure?



  • @jsulm
    Thanks a lot for your reply.
    ./configure -xplatform linux-arm-gnueabihf-g++ -prefix /usr/local/Qt5.7.1_opengl -opengl es2 -confirm-license -opensource -no-cups -no-largefile -optimized-qmake -nomake tools -no-pch -v -no-icu -no-openvg -sysroot /home/antriksh/ti-processor-sdk-linux-am57xx-evm-04.02.00.09/targetNFS -I/home/antriksh/ti-processor-sdk-linux-am57xx-evm-04.02.00.09/targetNFS/usr/am57xx-evm/usr/include/
    as per my knowledge Qt5.6 is not SET in PATH & LD_LIBRARY_PATH.

    Regards,
    Biswajit


  • Lifetime Qt Champion

    @Biswajit_1984 Did you try to build Qt 5.6 before and do you still have build artefacts from that build?



  • @jsulm
    I have n't tried to build qt5...
    But to cross check Can you please let me know which path i should cross check?
    If the sysroot path already have qt related library will it create problem.
    To avoid the confusion,i have moved all the qt related library from that and compiling the same.
    i will update on the same.

    Regards,
    Biswajit



  • @jsulm
    I have cross checked and got to know that while installing the SDK which i have received from TI ,qt5 is already installed in the sysroot.
    Even after removing the same from there still the error persists.

    Regards,
    Biswajit


  • Lifetime Qt Champion

    @Biswajit_1984 Try to build from a clean state after removing old Qt from SDK



  • @jsulm I have tried as you said like removing all qt related files from sysroot

    antriksh@antriksh:~/qt-everywhere-opensource-src-5.7.1$ sudo find ../ti-processor-sdk-linux-am57xx-evm-04.02.00.09/targetNFS/ -iname "libqt*"
    antriksh@antriksh:~/qt-everywhere-opensource-src-5.7.1$

    Then I did make clean followed by find . -name "*.o" -exec rm -rf {} ;

    Then again i configured and started compilation once again.
    But still the error is there.
    Is there any way by which i can disable version checking ?

    Regards,
    Biswajit


  • Lifetime Qt Champion

    @Biswajit_1984 You should not disable version checking you should fix your setup to use correct libs.



  • @jsulm
    Ok.So can you please guide which other files may create problem.
    Because Now I have removed any files related to qt also from sysroot.
    sudo find ../ti-processor-sdk-linux-am57xx-evm-04.02.00.09/targetNFS/ -iname "qt*" -exec rm -rf {} ;

    Even though the issue persists.
    I am not able to move further.

    Regards,
    Biswajit


  • Lifetime Qt Champion

    @Biswajit_1984 Can you please post the whole compiler/linker output here, not only the error message?



  • @jsulm while configuring now i am ending with error like:
    To test i have modified in order to avoid version checking qversiontagging.cpp but it gave error like:fatal error: stdlib.h: No such file or directory.
    Then after even though i revert back the changes this error persists even while configuring.
    I have searched in the internet regarding the same but didn't find any solution.
    Please help me in order to solve this issue.

    Regards,
    Biswajit


  • Lifetime Qt Champion

    @Biswajit_1984 Maybe you should start from a clean state? Your setup seems to be broken.



  • @jsulm I have freshly extracted the new qt-everywhere-opensource-src-5.7.1.tar file and tried to configure also.But still "fatal error: stdlib.h: No such file or directory"

    Compiler Output:
    checking for FreeType...
    /home/antriksh/gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++ -c -pipe -O3 -march=armv7-a -mtune=cortex-a15 -mfpu=neon-vfpv4 -mfloat-abi=hard -fPIC -mword-relocations -fpermissive --sysroot=/home/antriksh/ti-processor-sdk-linux-am57xx-evm-04.02.00.09/targetNFS -O2 -Wall -W -fPIC -I. -I/home/antriksh/ti-processor-sdk-linux-am57xx-evm-04.02.00.09/targetNFS/usr/am57xx-evm/usr/include -isystem /home/antriksh/ti-processor-sdk-linux-am57xx-evm-04.02.00.09/targetNFS/usr/include -isystem /home/antriksh/ti-processor-sdk-linux-am57xx-evm-04.02.00.09/targetNFS/usr/include/libxml2 -isystem /home/antriksh/ti-processor-sdk-linux-am57xx-evm-04.02.00.09/targetNFS/usr/include/freetype2 -isystem /home/antriksh/ti-processor-sdk-linux-am57xx-evm-04.02.00.09/targetNFS/usr/include/drm -isystem /home/antriksh/ti-processor-sdk-linux-am57xx-evm-04.02.00.09/targetNFS/usr/include/gbm -isystem /home/antriksh/ti-processor-sdk-linux-am57xx-evm-04.02.00.09/targetNFS/usr/include/c++/6.2.1 -isystem /home/antriksh/ti-processor-sdk-linux-am57xx-evm-04.02.00.09/targetNFS/usr/include/GLES -I../../../mkspecs/linux-arm-gnueabihf-g++ -o freetype.o freetype.cpp
    In file included from /home/antriksh/ti-processor-sdk-linux-am57xx-evm-04.02.00.09/targetNFS/usr/include/c++/6.2.1/cstdlib:75:0,
    from /home/antriksh/ti-processor-sdk-linux-am57xx-evm-04.02.00.09/targetNFS/usr/include/stdlib.h:36,
    from /home/antriksh/ti-processor-sdk-linux-am57xx-evm-04.02.00.09/targetNFS/usr/include/freetype2/freetype/config/ftstdlib.h:120,
    from /home/antriksh/ti-processor-sdk-linux-am57xx-evm-04.02.00.09/targetNFS/usr/include/freetype2/freetype/config/ftconfig.h:43,
    from /home/antriksh/ti-processor-sdk-linux-am57xx-evm-04.02.00.09/targetNFS/usr/include/freetype2/freetype/freetype.h:33,
    from freetype.cpp:41:
    /home/antriksh/gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf/include/c++/6.2.1/stdlib.h:30:26: fatal error: stdlib.h: No such file or directory

    include_next <stdlib.h>

                          ^
    

    compilation terminated.
    Makefile:186: recipe for target 'freetype.o' failed
    make: *** [freetype.o] Error 1
    FreeType disabled.
    checking for HarfBuzz...
    /home/antriksh/gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++ -c -pipe -O3 -march=armv7-a -mtune=cortex-a15 -mfpu=neon-vfpv4 -mfloat-abi=hard -fPIC -mword-relocations -fpermissive --sysroot=/home/antriksh/ti-processor-sdk-linux-am57xx-evm-04.02.00.09/targetNFS -O2 -Wall -W -fPIC -I. -I/home/antriksh/ti-processor-sdk-linux-am57xx-evm-04.02.00.09/targetNFS/usr/am57xx-evm/usr/include -isystem /home/antriksh/ti-processor-sdk-linux-am57xx-evm-04.02.00.09/targetNFS/usr/include -isystem /home/antriksh/ti-processor-sdk-linux-am57xx-evm-04.02.00.09/targetNFS/usr/include/libxml2 -isystem /home/antriksh/ti-processor-sdk-linux-am57xx-evm-04.02.00.09/targetNFS/usr/include/freetype2 -isystem /home/antriksh/ti-processor-sdk-linux-am57xx-evm-04.02.00.09/targetNFS/usr/include/drm -isystem /home/antriksh/ti-processor-sdk-linux-am57xx-evm-04.02.00.09/targetNFS/usr/include/gbm -isystem /home/antriksh/ti-processor-sdk-linux-am57xx-evm-04.02.00.09/targetNFS/usr/include/c++/6.2.1 -isystem /home/antriksh/ti-processor-sdk-linux-am57xx-evm-04.02.00.09/targetNFS/usr/include/GLES -I../../../mkspecs/linux-arm-gnueabihf-g++ -o harfbuzz.o harfbuzz.cpp
    /home/antriksh/gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++ -Wl,-O1 -o harfbuzz harfbuzz.o -L/home/antriksh/ti-processor-sdk-linux-am57xx-evm-04.02.00.09/targetNFS/lib -L/home/antriksh/ti-processor-sdk-linux-am57xx-evm-04.02.00.09/targetNFS/usr/lib -lz -lfreetype -lexpat -lrt -ldl -lfontconfig -lpng -lpthread --sysroot=/home/antriksh/ti-processor-sdk-linux-am57xx-evm-04.02.00.09/targetNFS -lharfbuzz
    HarfBuzz enabled.
    checking for STL...
    /home/antriksh/gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++ -c -pipe -O3 -march=armv7-a -mtune=cortex-a15 -mfpu=neon-vfpv4 -mfloat-abi=hard -fPIC -mword-relocations -fpermissive --sysroot=/home/antriksh/ti-processor-sdk-linux-am57xx-evm-04.02.00.09/targetNFS -O2 -Wall -W -fPIC -I. -I/home/antriksh/ti-processor-sdk-linux-am57xx-evm-04.02.00.09/targetNFS/usr/am57xx-evm/usr/include -isystem /home/antriksh/ti-processor-sdk-linux-am57xx-evm-04.02.00.09/targetNFS/usr/include -isystem /home/antriksh/ti-processor-sdk-linux-am57xx-evm-04.02.00.09/targetNFS/usr/include/libxml2 -isystem /home/antriksh/ti-processor-sdk-linux-am57xx-evm-04.02.00.09/targetNFS/usr/include/freetype2 -isystem /home/antriksh/ti-processor-sdk-linux-am57xx-evm-04.02.00.09/targetNFS/usr/include/drm -isystem /home/antriksh/ti-processor-sdk-linux-am57xx-evm-04.02.00.09/targetNFS/usr/include/gbm -isystem /home/antriksh/ti-processor-sdk-linux-am57xx-evm-04.02.00.09/targetNFS/usr/include/c++/6.2.1 -isystem /home/antriksh/ti-processor-sdk-linux-am57xx-evm-04.02.00.09/targetNFS/usr/include/GLES -I../../../mkspecs/linux-arm-gnueabihf-g++ -o stltest.o stltest.cpp
    In file included from /home/antriksh/ti-processor-sdk-linux-am57xx-evm-04.02.00.09/targetNFS/usr/include/c++/6.2.1/cstdlib:75:0,
    from /home/antriksh/ti-processor-sdk-linux-am57xx-evm-04.02.00.09/targetNFS/usr/include/c++/6.2.1/ext/string_conversions.h:41,
    from /home/antriksh/ti-processor-sdk-linux-am57xx-evm-04.02.00.09/targetNFS/usr/include/c++/6.2.1/bits/basic_string.h:5402,
    from /home/antriksh/ti-processor-sdk-linux-am57xx-evm-04.02.00.09/targetNFS/usr/include/c++/6.2.1/string:52,
    from /home/antriksh/ti-processor-sdk-linux-am57xx-evm-04.02.00.09/targetNFS/usr/include/c++/6.2.1/bits/locale_classes.h:40,
    from /home/antriksh/ti-processor-sdk-linux-am57xx-evm-04.02.00.09/targetNFS/usr/include/c++/6.2.1/bits/ios_base.h:41,
    from /home/antriksh/ti-processor-sdk-linux-am57xx-evm-04.02.00.09/targetNFS/usr/include/c++/6.2.1/ios:42,
    from /home/antriksh/ti-processor-sdk-linux-am57xx-evm-04.02.00.09/targetNFS/usr/include/c++/6.2.1/ostream:38,
    from /home/antriksh/ti-processor-sdk-linux-am57xx-evm-04.02.00.09/targetNFS/usr/include/c++/6.2.1/iterator:64,
    from stltest.cpp:45:
    /home/antriksh/gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf/include/c++/6.2.1/stdlib.h:30:26: fatal error: stdlib.h: No such file or directory

    If you can figure out and can find the root cause then it will be really grateful.
    Is there any patch for solving this issue.Since I have found a simillar issue in GIT Hub.
    https://github.com/voidlinux/void-packages/issues/5254

    Regards,
    Biswajit



  • @jsulm
    I have solved the issue.
    The mistake was :I have given am57xx-evm path in which already qt was installed.
    so after removed and then compiled .
    After that,the earlier error didn't come.
    But it ended with another error.
    I am not able to figure out the root cause.Please help me in solving the same.

    configure parameter:

    ./configure -xplatform linux-arm-gnueabihf-g++ -prefix /usr/local/Qt5.7.1_opengl -opengl es2 -confirm-license -opensource -no-cups -no-largefile -optimized-qmake -nomake tools -no-pch -v -no-icu -no-openvg -sysroot /home/mistral/ti-processor-sdk-linux-am57xx-evm-04.02.00.09/targetNFS -qt-pcre -no-xcb -no-sm -no-glib -no-libinput -no-mtdev -nomake examples

    Error Log:

    Entering directory `/home/mistral/QT_BUILD/qt-everywhere-opensource-src-5.7.1/qtwebengine/src/core/Release'
    [9/10383] ACTION make_core_generated: CSSPropertyNames_1dd3bbd1830ec3803de4b986e6e77be9
    FAILED: cd /home/mistral/QT_BUILD/qt-everywhere-opensource-src-5.7.1/qtwebengine/src/3rdparty/chromium/third_party/WebKit/Source/core; python ../build/scripts/make_css_property_names.py css/CSSProperties.in --output_dir /home/mistral/QT_BUILD/qt-everywhere-opensource-src-5.7.1/qtwebengine/src/core/Release/gen/blink/core --gperf gperf
    Traceback (most recent call last):
    File "../build/scripts/make_css_property_names.py", line 238, in <module>
    in_generator.Maker(CSSPropertyNamesWriter).main(sys.argv)
    File "/home/mistral/QT_BUILD/qt-everywhere-opensource-src-5.7.1/qtwebengine/src/3rdparty/chromium/third_party/WebKit/Source/build/scripts/in_generator.py", line 95, in main
    writer.write_files(options.output_dir)
    File "/home/mistral/QT_BUILD/qt-everywhere-opensource-src-5.7.1/qtwebengine/src/3rdparty/chromium/third_party/WebKit/Source/build/scripts/in_generator.py", line 71, in write_files
    self._write_file_if_changed(output_dir, generator(), file_name)
    File "../build/scripts/make_css_property_names.py", line 233, in generate_implementation
    gperf = subprocess.Popen(gperf_args, stdin=subprocess.PIPE, stdout=subprocess.PIPE, universal_newlines=True)
    File "/usr/lib/python2.7/subprocess.py", line 711, in init
    errread, errwrite)
    File "/usr/lib/python2.7/subprocess.py", line 1343, in _execute_child
    raise child_exception
    OSError: [Errno 2] No such file or directory
    [9/10383] ACTION make_core_generated: StylePropertyShorthand_1dd3bbd1830ec3803de4b986e6e77be9
    ninja: build stopped: subcommand failed.
    Makefile.gyp_run:923: recipe for target 'invoke_ninja' failed
    make[4]: *** [invoke_ninja] Error 1
    make[4]: Leaving directory '/home/mistral/QT_BUILD/qt-everywhere-opensource-src-5.7.1/qtwebengine/src/core'
    Makefile:116: recipe for target 'sub-gyp_run-pro-make_first' failed
    make[3]: *** [sub-gyp_run-pro-make_first] Error 2
    make[3]: Leaving directory '/home/mistral/QT_BUILD/qt-everywhere-opensource-src-5.7.1/qtwebengine/src/core'
    Makefile:49: recipe for target 'sub-core-make_first' failed
    make[2]: *** [sub-core-make_first] Error 2
    make[2]: Leaving directory '/home/mistral/QT_BUILD/qt-everywhere-opensource-src-5.7.1/qtwebengine/src'
    Makefile:44: recipe for target 'sub-src-make_first' failed
    make[1]: *** [sub-src-make_first] Error 2
    make[1]: Leaving directory '/home/mistral/QT_BUILD/qt-everywhere-opensource-src-5.7.1/qtwebengine'
    Makefile:859: recipe for target 'module-qtwebengine-make_first' failed
    make: *** [module-qtwebengine-make_first] Error 2


  • Lifetime Qt Champion

    @Biswajit_1984 said in Cross compile QT5.7 for ARM:

    qtwebengine

    if you don't need it you can disable it



  • @jsulm Thanks a lot for your support.
    As per your suggestion ,I have disabled qtwebengine(-skip qtwebengine) and it got compiled properly.

    Regards,
    Biswajit


Log in to reply