How to copy cross-compiled Qt binaries from one computer to another
-
Hi, So on my current laptop has cross compiled binaries for Qt5.13 with Beaglebone Black as target device. At my workplace, we want to have the ability of working on any desktop or laptop on same target to make different components of our Qt project. Normally as per my knowledge and after seeing some github repos that share precompiled Raspberry Pi binaries, I copied the folder containing qmake and other files in hostprefix directory to another computer but Qt creator on that computer says the qmake is not executable. I also have the toolchain I used on one machine copied to another.
Is this some kind PATH related issue or copying the binaries doesn't work at all? Because cross compiling is a pain in the ass especially with a platform like Beaglebone black.
To elaborate the last line, I'm using this method to make the detection of libudev for runtime. When I compiled it on my personal computer it worked but now when I'm trying it on other computers, its giving out this long error. If anyone has experienced something like this in the past, let me know.
I'm open to solution for any of the problems above, so feel free to suggest me what's going wrong here. TIA.
-
@jsulm Hi, thanks for such extensive help. It looks like GLIBC version is lower on my work computer than my personal laptop.
/home/lsce/Downloads/Qt5forBBB/bin/qmake: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.29' not found (required by /home/lsce/Downloads/Qt5forBBB/bin/qmake) /home/lsce/Downloads/Qt5forBBB/bin/qmake: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.28' not found (required by /home/lsce/Downloads/Qt5forBBB/bin/qmake)
I use Manjaro on my laptop, whereas all work computers are running ubuntu. I'll see what can be done regarding this situation, but I guess upgrading GLIBC by changing distro should sort this out. Thanks again and let me know if you've some thoughts regarding this.
-
@ketank16 said in How to copy cross-compiled Qt binaries from one computer to another:
qmake is not executable
Mark it as executable:
chmod a+rx PATH_TO_QMAKE
I guess you did not use Linux file system to exchange the files? In that case use tar to preserve the access rights.
-
@jsulm All the folders I copied from oen computer to another were archived using tar. I also did the chmod a+rx on it. But somehow still qt creator gives this error. Its weird for me too, since all the computers are 64 bit, so that is also not where this error is coming from.
-
@jsulm Hi it says:
qmake: ELF 64-bit LSB shared object, x86-64, version 1 (GNU/Linux), dynamically linked, interpreter /lib64/l, BuildID[sha1]=11303ac790128d944e0bcd2bb582aea6002e31ad, for GNU/Linux 3.2.0, with debug_info, not stripped
Additionally, running just qmake gives following output:
qmake: could not find a Qt installation of ''
Could this be the reason? -
@ketank16 said in How to copy cross-compiled Qt binaries from one computer to another:
running just qmake gives following output:
I guess this one calls qmake from your distribution provided Qt.
Your qmake should actually work.
Are you sure you selected the correct one?
Did you try to call it manually in a terminal (using whole path)? -
@jsulm Hi, thanks for such extensive help. It looks like GLIBC version is lower on my work computer than my personal laptop.
/home/lsce/Downloads/Qt5forBBB/bin/qmake: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.29' not found (required by /home/lsce/Downloads/Qt5forBBB/bin/qmake) /home/lsce/Downloads/Qt5forBBB/bin/qmake: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.28' not found (required by /home/lsce/Downloads/Qt5forBBB/bin/qmake)
I use Manjaro on my laptop, whereas all work computers are running ubuntu. I'll see what can be done regarding this situation, but I guess upgrading GLIBC by changing distro should sort this out. Thanks again and let me know if you've some thoughts regarding this.
-
@ketank16 said in How to copy cross-compiled Qt binaries from one computer to another:
my current laptop has cross compiled binaries for Qt5.13 with Beaglebone Black as target device
Out of curiosity, and to help some other users fighting vigorously with such devices, did you follow any guide or instructions that you can share?
Thanks in advance. -
@pablo-j-rogina I have read countless threads and posts on this forum. I've made my own little guide to help my colleagues. Its still a rough draft but I'll share it tonight. Keep in mind that I haven't been able to compile with EGLFS compatibility but yeah, nonetheless it will save time for you or the others.
-
Here you can find the file that I've written. Make sure to suggest some changes too if you find something wrong.
-
@ketank16 thank you very much for sharing your knowledge.
I cannot test step by step since I don't have a BBB device, but it looks pretty much detailed and easy to follow.
One picky addition if you will: I'd add the "location" (i.e. HOST or BBB) to every step so to be sure where the action/command needs to be run, something like:10. [HOST] Run following command in Qt directory: ... 14. [BBB] (Open Beaglebone over SSH and follow this step)
-
@pablo-j-rogina Thanks, already updated the file and completed the guide too. Hopefully people can find it useful from here.
-
Hi,
I am trying qt with beagleboneboard and I followed your document,
step by step,
After./configure(step 10),the result is
Step 11,make -j4 The result is :
Step 12:make install, The result is
Afer make installation I got the ~/BBB/sysroot/home/debian/Qt5ForBBB directory also,
I downloaded the fonts and copied those on to Qt5ForBBB/lib/fonts, and finished with step 14 also,
but I am not getting the qtcreator window,why I am not getting qt,please go through the screenshots and let me know if any mistakes is there,
as you showed on step 15,
How to launch the qt after step 14,please guide me...
Thankyou..
-
@asha said in How to copy cross-compiled Qt binaries from one computer to another:
but I am not getting the qtcreator window
What do you mean by that?
There is no need to cross compile QtCreator for the device unless you want to use it on your device. Simply install QtCreator via installer on your Ubuntu machine and create a Kit there with your cross compiled Qt. -
@asha In your last screenshot, you can see udev errors. Apparently even after installing libudev on Beaglebone black and eventually copying it in sysroot doesn't solve the problem either. But a workaround is to make qmake look for udev in runtime rather than at compile time. The discussion and how-to is described in this thread here. You can follow it for current version of Qt as well. Let me know how the results come out for you.