Hi everyone,
I'm trying to use the machine vision SDK 1.2.7 on the Snapdragon 845.
I wrote a very basic first function to make sure I can compile and link properly, but I can't seem to get it right.
My linker complains that:
| [ 32%] Linking CXX executable vio| cd /home/nico/nico-845-bsp/build/poky/build/tmp-glibc/work/aarch64-oe-linux/dw-nico-cv/1.0-r0/build/apps/vio && /home/nico/nico-845-bsp/build/poky/build/tmp-glibc/work/aarch64-oe-linux/dw-nico-cv/1.0-r0/recipe-sysroot-native/usr/bin/cmake -E cmake_link_script CMakeFiles/vio.dir/link.txt --verbose=1| /home/nico/nico-845-bsp/build/poky/build/tmp-glibc/work/aarch64-oe-linux/dw-nico-cv/1.0-r0/recipe-sysroot-native/usr/bin/aarch64-oe-linux/aarch64-oe-linux-g++ -fstack-protector-strong -pie -fPIE -D_FORTIFY_SOURCE=2 -Wa,--noexecstack -Wformat -Wformat-security -Werror=format-security --sysroot=/home/nico/nico-845-bsp/build/poky/build/tmp-glibc/work/aarch64-oe-linux/dw-nico-cv/1.0-r0/recipe-sysroot -O2 -Wa,--noexecstack -fexpensive-optimizations -frename-registers -fomit-frame-pointer -ftree-vectorize -finline-functions -finline-limit=64 -Wno-error=maybe-uninitialized -Wno-error=unused-result -fvisibility-inlines-hidden -fstack-protector-strong -pie -fPIE -D_FORTIFY_SOURCE=2 -Wa,--noexecstack -Wformat -Wformat-security -Werror=format-security --sysroot=/home/nico/nico-845-bsp/build/poky/build/tmp-glibc/work/aarch64-oe-linux/dw-nico-cv/1.0-r0/recipe-sysroot -fstack-protector-strong -pie -fPIE -D_FORTIFY_SOURCE=2 -Wa,--noexecstack -Wformat -Wformat-security -Werror=format-security --sysroot=/home/nico/nico-845-bsp/build/poky/build/tmp-glibc/work/aarch64-oe-linux/dw-nico-cv/1.0-r0/recipe-sysroot -O2 -Wa,--noexecstack -fexpensive-optimizations -frename-registers -fomit-frame-pointer -ftree-vectorize -finline-functions -finline-limit=64 -Wno-error=maybe-uninitialized -Wno-error=unused-result -fvisibility-inlines-hidden -fstack-protector-strong -pie -fPIE -D_FORTIFY_SOURCE=2 -Wa,--noexecstack -Wformat -Wformat-security -Werror=format-security --sysroot=/home/nico/nico-845-bsp/build/poky/build/tmp-glibc/work/aarch64-oe-linux/dw-nico-cv/1.0-r0/recipe-sysroot -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -Wl,-z,relro,-z,now,-z,noexecstack -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -Wl,-z,relro,-z,now,-z,noexecstack CMakeFiles/vio.dir/vio.cpp.o -o vio -L/home/nico/nico-845-bsp/build/poky/build/tmp-glibc/work/aarch64-oe-linux/dw-nico-cv/1.0-r0/git/src/vio_manager -Wl,-rpath,/home/nico/nico-845-bsp/build/poky/build/tmp-glibc/work/aarch64-oe-linux/dw-nico-cv/1.0-r0/git/src/vio_manager:/home/nico/nico-845-bsp/build/poky/build/tmp-glibc/work/aarch64-oe-linux/dw-nico-cv/1.0-r0/git/extern/qc-vio/usr/lib ../../src/vio_manager/libvio_manager.a /home/nico/nico-845-bsp/build/poky/build/tmp-glibc/work/aarch64-oe-linux/dw-nico-cv/1.0-r0/git/extern/qc-vio/usr/lib/libmv1.so| /home/nico/nico-845-bsp/build/poky/build/tmp-glibc/work/aarch64-oe-linux/dw-nico-cv/1.0-r0/git/extern/qc-vio/usr/lib/libmv1.so: error adding symbols: File in wrong format| collect2: error: ld returned 1 exit status| apps/vio/CMakeFiles/vio.dir/build.make:99: recipe for target 'apps/vio/vio' failed| make[2]: *** [apps/vio/vio] Error 1| make[2]: Leaving directory '/home/nico/nico-845-bsp/build/poky/build/tmp-glibc/work/aarch64-oe-linux/dw-nico-cv/1.0-r0/build'| CMakeFiles/Makefile2:643: recipe for target 'apps/vio/CMakeFiles/vio.dir/all' failed| make[1]: *** [apps/vio/CMakeFiles/vio.dir/all] Error 2| make[1]: *** Waiting for unfinished jobs....
This sounds like I'm working with the wrong .so files or compiling for the wrong architecture, right?
Since the .ipk I downloaded only contains sample apps for 8x74 and 8x96, I'm getting the feeling that maybe the library I'm using is the wrong one? Where can I find the .so for the 845? Is there a sample application for the 845? I downloaded this one: https://developer.qualcomm.com/downloads/machine-vision-sdk-v127-845?referrer=node/34482
BTW: I'm running a yocto-based BSP for the Intrinsyc 845 Dev Kit
Any pointers would be warmly welcomed :D
- Nico
I resolved this myself.
In order to help anyone with the same issues, the problem was that the libraries are compiled for armv7 (32bit), while the 845 is an armv8 (64bit). After telling yocto to compile my application for 32bit, it linked just fine.
Thread can be closed.
Thanks for posting this follow-up. We will update the documentation for now. The 64-bit version will come in the near future but no date is set yet.
hi nico;
How/Where you get the aarch64-oe-linux-g++ compiler;
Thanks && BR!
Any update on 64-bit versions?
There is no update yet on a specific 64-bit 845 release. However, there is a 64-bit 865 release posted that you might give a try.