Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct
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 I think best way is to use same version of same distribution on both machines if you want to avoid to build two times.
-
@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,
as you said in your pdf file,the seventh step,
How to download the sysroot-relativelinks.py,
when I open the github it displaying the text file,there is no option for download purpose,
-
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.
-
@asha Easiest way is make a file with that name on your computer and copy the contents from git file to your local file. Run
sudo chmod a+rx Sysroot-relativelinks.py
to make it executable and you're good to go.
-
This post is deleted!
-
This post is deleted!
-
Hi,
I followed the same as you said,when I am trying to run
./Sysroot-relativelinks.py sysroot
getting Output:
/usr/bin/env: 'python': No such file or directory
while getting this can I processed next?
-
@Asha said in How to copy cross-compiled Qt binaries from one computer to another:
while getting this can I processed next?
No. Install python in your host PC and repeat the step. Only when it succeeds you can go on.
-
Thankyou for the replay,
I installed python via
sudo apt-get install python3
when I am given the command like
python3
getting result Python 3.6.8
but after this,, executing the ./sysroot-relativelinks.py sysroot but getting the same result, No such file or directory....
-
Hi,
I seen where python3 is installed with the following command
which python3
the output is
/usr/bin/python3so in sysroot-relativelinks.py file I edited the first line
#!/usr/bin/env python to #!/usr/bin/python3
After this again I executed the sysroot-relativelinks.py
now it is executed...what I did is it correct?...Thankyou...
-
@Asha You are supposed to have python2 (not python3) package. Ubuntu should automatically install python2 packages when you execute
sudo apt install python
.
Anyways for such a small script, I don't think its gonna make a difference but please remeber python package is python2 in Ubuntu repos and python3 is well python3 itself.
-
Hi,
While configuring I am getting this error,please go through this, here is the attachement
How to proceed next..
-
Hi,
Any suggestions...please
-
-
I gone through some websites,
about this errorYou dont seem to have make or gmake in your path.
I export MAKE=/usr/bin/make
after this tried for configuration,getting
guys,please suggest me ho w to proceed next...thankyou
-
@Asha Did you install make?
-
How to install this one..
-
Hi,
Some suggested me ,to install build-essential package,so I installed..
After that tried configure,The output is
...
So while getting this Exec format error,I gone through some of websites, installed
sudo apt-get install binftm-support qemu qemu-user-static
After this tried configure once again,The result is :
so now getting,
/lib/ld-linux-armhf.so.3: No such file or directory...whats going wrong..how do I solve this..
-
Hi,
I found the ld-linux-armhf.so.3 file in the below folder
/usr/arm-linux-gnueabihf/lib/ld-linux-armhf.so.3
here is the attachement
How to proceed next..please suggest me..
-
This post is deleted!
-
man bzip2 man tar
-
Hi..
I cross compiled the qt..(I followed you document)..
Here is the kit configuration
Here is the qtversion selection
Here is the compiler selection
Here is the gdb selection
After this all setting, I am running a simple application..but getting the error
Any Suggestions ,how to solve this error..
Thankyou.
-
Hi,
please show me your qmake.conf file contents,
And, which platform plugin is running on your beagleboneboard device(asking,just for information purpose)....