Linker problem 32/64 bit voxl_qvio_server
-
Hello,
I am trying to compile the program "voxl-qvio-server" which is 32-bit. I downloaded the 32-bit g++arm-linux-gnueabi compiler/linker onto the target using apt. The compilation is successful, but the linker is failing on the 64-bit voxl_io.so library that the code requires. How can I solve this problem? See below.Thanks.arm-linux-gnueabi-g++ -L/usr/lib32 -L/usr/lib -L/lib -o "QVIOServer" ./main.o -lmv1 -lvoxl_io -lrc_math -lmodal_json -lm -lmodal_pipe -lpthread -lrt -lvoxl_cutils
/usr/lib/libvoxl_io.so: file not recognized: File format not recognized
collect2: error: ld returned 1 exit status
makefile:56: recipe for target 'QVIOServer' failed
make: *** [QVIOServer] Error 1
"make all" terminated with exit code 2. Build might be incomplete. -
The build instructions are in the README here: https://gitlab.com/voxl-public/voxl-sdk/services/voxl-qvio-server/-/blob/master/README.md
And the master branch passed CI here: https://gitlab.com/voxl-public/voxl-sdk/services/voxl-qvio-server/-/pipelines/854370575/
CI status: https://gitlab.com/voxl-public/voxl-sdk/ci-status
-
Hi,
Your reply was not very helpful. I am trying to compile/link a 32-bit C++ application called voxl_qvio_server, which requires a 64-bit voxl_io.so library. It is not working. See again:
arm-linux-gnueabi-g++ -L/usr/lib32 -L/usr/lib -L/lib -o "voxl_qvio_server" ./main.o -lmv1 -lvoxl_io -lrc_math -lmodal_json -lm -lmodal_pipe -lpthread -lrt -lvoxl_cutils
/usr/lib/libvoxl_io.so: file not recognized: File format not recognized
collect2: error: ld returned 1 exit status
makefile:56: recipe for target 'voxl_qvio_server' failed
make: *** [QVIOServer] Error 1
"make all" terminated with exit code 2. Build might be incomplete.Please answer to my question specifically. Thank you.
-
To build voxl-qvio-server, please follow the instructions in the README. The instructions are validated nightly by the CI
The first paragraph of the README explains the following: "Due to MV SDK being 32-bit only, this is the only 32-bit package for QRB5165. The APQ8096 package builds in voxl-emulator, the QRB5165 package builds in qrb5165-emulator using a 32-bit cross compiler installed in the emulator."
the only way to build that package is to follow the instructions in the README. Installing your own compiler will not work, you need to use the toolchain provided.