Open me21 opened 3 years ago
I downloaded the Beaglebone toolchain for Windows from sysprogs.com, version 8.3.0. The last invoked command invoked by g++ was:
c:/sysgcc/beaglebone/bin/../libexec/gcc/arm-linux-gnueabihf/8/collect2.exe -plugin c:/sysgcc/beaglebone/bin/../libexec/gcc/arm-linux-gnueabihf/8/liblto_plugin-0.dll -plugin-opt=c:/sysgcc/beaglebone/bin/../libexec/gcc/arm-linux-gnueabihf/8/lto-wrapper.exe -plugin-opt=-fresolution=C:\Users\AZARUB~1\AppData\Local\Temp\ccIvKx0u.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --sysroot=C:/Users/azarubkin/Documents/beaglebone/rootfs --build-id --eh-frame-hdr -dynamic-linker /lib/ld-linux-armhf.so.3 -X --hash-style=gnu -m armelf_linux_eabi -pie C:/Users/azarubkin/Documents/beaglebone/rootfs/usr/lib/arm-linux-gnueabihf/Scrt1.o C:/Users/azarubkin/Documents/beaglebone/rootfs/usr/lib/arm-linux-gnueabihf/crti.o c:/sysgcc/beaglebone/bin/../lib/gcc/arm-linux-gnueabihf/8/crtbeginS.o -Lc:/sysgcc/beaglebone/bin/../lib/gcc/arm-linux-gnueabihf/8 -Lc:/sysgcc/beaglebone/bin/../lib/gcc/arm-linux-gnueabihf -Lc:/sysgcc/beaglebone/bin/../lib/gcc -Lc:/sysgcc/beaglebone/bin/../lib/gcc/arm-linux-gnueabihf/8/../../../../arm-linux-gnueabihf/lib -LC:/Users/azarubkin/Documents/beaglebone/rootfs/lib/arm-linux-gnueabihf -LC:/Users/azarubkin/Documents/beaglebone/rootfs/lib -LC:/Users/azarubkin/Documents/beaglebone/rootfs/usr/lib/arm-linux-gnueabihf -LC:/Users/azarubkin/Documents/beaglebone/rootfs/usr/lib C:\Users\AZARUB~1\AppData\Local\Temp\ccsUvAbq.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc c:/sysgcc/beaglebone/bin/../lib/gcc/arm-linux-gnueabihf/8/crtendS.o C:/Users/azarubkin/Documents/beaglebone/rootfs/usr/lib/arm-linux-gnueabihf/crtn.o
Hope this helps!
Also, this library is also present at C:\SysGCC\beaglebone\arm-linux-gnueabihf\sysroot\lib\arm-linux-gnueabihf
.
If I don't set CMAKE_SYSROOT (comment it out in BBBToolchain.cmake), it works. But this is not right, I think...
Found solution at https://forum.qt.io/topic/62094/cross-compiling-for-beaglebone-black-libm-so-6-not-found-but-it-is-there Needed to copy libm.so.6 from lib/arm-linux-gnueabihf/ to usr/lib/arm-linux-gnueabihf/ and rename it to libm.so. But why wasn't it found in its former location? Anyway, some corrections need to be added to Windows instruction regarding symlinks. This one was apparently broken and not copied.
I think -L
option can be added to the rsync command, it will then copy all symlinks as files, plus the second step (copying missing libs) can be then omitted.
First of all, I actually use my own helloworld project with your toolchain file, but I'm not sure if it could make any difference.
I get the following error during CMake configure stage:
The libraries search dirs obtained by calling
C:\SysGCC\beaglebone\bin\arm-linux-gnueabihf-g++.exe --sysroot=C:/Users/azarubkin/Documents/beaglebone/rootfs -print-search-dirs
are:The file
libm.so.6
is located inC:\Users\azarubkin\Documents\beaglebone\rootfs\lib\arm-linux-gnueabihf
, which is in the list, but why the linker cannot find it?