Forums - Cannot link to mvSDK on 845

6 posts / 0 new
Last post
Cannot link to mvSDK on 845
nico
Join Date: 3 Apr 18
Posts: 4
Posted: Fri, 2019-11-29 03:03

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

  • Up0
  • Down0
nico
Join Date: 3 Apr 18
Posts: 4
Posted: Mon, 2019-12-02 07:17

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.

  • Up0
  • Down0
gmcgrath
Join Date: 21 Aug 13
Posts: 65
Posted: Mon, 2019-12-02 12:35

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.

  • Up0
  • Down0
ganxiaozhan1
Join Date: 1 Jul 20
Posts: 1
Posted: Fri, 2020-07-03 02:58

hi  nico;

How/Where you get the  aarch64-oe-linux-g++ compiler;

Thanks && BR!

 

  • Up0
  • Down0
walter.schaertl
Join Date: 2 Jun 20
Posts: 1
Posted: Mon, 2020-07-20 09:28

Any update on 64-bit versions?

  • Up0
  • Down0
gmcgrath
Join Date: 21 Aug 13
Posts: 65
Posted: Mon, 2020-07-27 14:03

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.

  • Up0
  • Down0
or Register

Opinions expressed in the content posted here are the personal opinions of the original authors, and do not necessarily reflect those of Qualcomm Incorporated or its subsidiaries (“Qualcomm”). The content is provided for informational purposes only and is not meant to be an endorsement or representation by Qualcomm or any other party. This site may also provide links or references to non-Qualcomm sites and resources. Qualcomm makes no representations, warranties, or other commitments whatsoever about any non-Qualcomm sites or third-party resources that may be referenced, accessible from, or linked to this site.