voxl-tflite-server forward compatibility ?
-
libuvc for voxl is built in voxl-emulator, not the qrb5165 emulator. If you check out the readme on the dev branch, you can see the separate build instructions for separate platforms.
-
@Matt-Turi Ok yeah i see. I don't even know why i went to qrb emulator but when building the libuvc library from source in qrb emulator, it still worked for me. I have a running version of it on the Voxl, should that even be possible if it's just made for qrb5165 devices?
-
Ah I see. libuvc is a c library, so the code is backwards compatible with gcc-4.9 and can be compiled with the newer gcc. The libs you are trying to compile are c++, so they are affected by the differences between compiler versions.
-
@Matt-Turi Ok good to know.
-
@Matt-Turi btw why is voxl-emulator architecture armv7l if we have aarch64 on actual voxl? Will this be a problem when compiling in emulator?
-
This post is deleted! -
@Philemon-Benner Voxl is 64 bit and the OS is 64 bit. However, Qualcomm provides many of their packages for the device as 32 bit and, consequently, anything that has a dependency on these packages must also be 32 bit. That is why you can build 64 bit applications and have them run successfully on Voxl. It just means that that application had no 32 bit dependencies.
-
Okey thanks for explaining
-
@Matt-Turi
I know it's not really related to the voxl but if include directorys in cmake like that:include_directories(/home/root/third_party/AWS/wrkspace/lib)
the compiler should find the packages located in there or?
[100%] Linking CXX executable Process /usr/lib/gcc-cross/aarch64-linux-gnu/7/../../../../aarch64-linux-gnu/bin/ld: cannot find -lDiscovery-cpp /usr/lib/gcc-cross/aarch64-linux-gnu/7/../../../../aarch64-linux-gnu/bin/ld: cannot find -lEventstreamRpc-cpp
but the linked library is located there:
voxl-cross:~(master)$ ls /home/root/third_party/AWS/wrkspace/lib | grep Discovery-cpp Discovery-cpp libDiscovery-cpp.a
-
Not totally sure what you're asking, but try looking into target_link_libraries in the cmake documentation
-
@Matt-Turi Ok so i got it working with CXX17, it's working in voxl-emulator:
voxl-emulator:~$ file program voxl-mission-logic: ELF 64-bit LSB executable, ARM aarch64, version 1 (GNU/Linux), statically linked, BuildID[sha1]=somekey , for GNU/Linux 5.4.0, not stripped voxl-emulator:~$ ./program --arg someArg [2022-03-22 12:23:14.804] [info] someText [2022-03-22 12:23:14.807] [info] someText [2022-03-22 12:23:15.279] [info] someText
But on actual voxl it's not working:
voxl:/data$ ./program --arg someArg FATAL: kernel too old Aborted
Kernel Versions in voxl-emulator and voxl_platform_3-3-0-0.5.0-a system image are actually different:
emulator kernel version: 5.13.0-35-generic
voxl kernel version: 3.18.71-perf
Shouldn't voxl emulator have the same kernel version as the voxl?
in the docs it says:- voxl-emulator simulates the VOXL system image and is built alongside the base system image
-
Upgrading to newest system image didn't work either
-
@Philemon-Benner voxl-emulator is a Docker image, not a complete Virtual Machine, so it uses the same kernel as the machine you run it on.
-
@Eric-Katzfey Ok thanks for the fast answer.