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

identifier-target/bin directory does not contain important binaries...?



  • I am building an app for an embedded device.

    I am compiling the Qt Libraries myself with:

    ./configure -opensource -confirm-license -verbose -pkg-config -no-use-gold-linker -device linux-nuc-g++ -device-option CROSS_COMPILE=/usr/bin/ -kms -gbm -sysroot / -system-freetype -fontconfig -skip webengine -verbose -recheck-all -make libs -prefix /usr/ -extprefix /opt/myapp-target -hostprefix /opt/myapp-host -qt-zlib -qt-libjpeg -qt-libpng -no-feature-bearermanagement -no-xcb -no-xcb-xlib -no-xkbcommon -no-xcb-xinput -no-linuxfb
    

    When I do this, I noticed that the myapp-target/bin folder does not contain the binaries for qmlimportscanner, lconvert, and several others. What is the correct method to access these binaries in this situation?

    They do exist in /opt/myapp-host/bin.

    Because both my host and target are running Ubuntu 18.04, I am assuming that I can just simlink to them, but I know sometimes paths can be hardcoded, etc.

    Or is there a better solution? Perhaps there is an additional flag I could pass to configure to have it compile the additional tools? (I looked, but didn't see anything obvious)


  • Lifetime Qt Champion

    Hi,

    Which version of Qt are you cross-compiling ?



  • @SGaist

    5.12.10

    qt-everywhere-src-5.12.10.tar.xz


  • Lifetime Qt Champion

    I remember some of these host tools will not get built when cross-compiling however something looks strange in your configuration line. What CPU does your target use ?



  • @SGaist

    > cat /proc/cpuinfo  | grep 'name'| uniq
    model name	: Intel(R) Pentium(R) CPU N4200 @ 1.10GHz
    

  • Lifetime Qt Champion

    Why are you cross-compiling Qt since your target machine is an x86_64 which I suspect is the same as your development machine ?
    If you want a reduced set of feature, just do a normal build removing them.



  • @SGaist

    That is a good question and one I had not considered.

    You are correct, the host machine is an x86_64 as well. There is no need to maintain a -host & -target setup for this situation.

    I still find it odd that some tools were not built and installed into -target.


  • Lifetime Qt Champion

    There are host tools that might be disabled due to the reduced functionality of your build.
    Also, when cross-compiling it would not make sense to build applications like designer because it would require to build some of the Qt modules for both the host and target which is not something you aim for when cross-compiling. Usually you have your desktop Qt build that has everything and then your cross-compiled version that has only the necessary tools to build the applications/libraries.



  • @SGaist

    I would have thought something like qmlimportscanner would be important to build an application, but perhaps I am wrong.

    Yes, it makes sense that designer would not be there.


Log in to reply