Running binaries onto different Jetson TK1 boards

Hi All,
Actually i am creating a Person detection application in Jetson TK1 and running it on different Jetson boards.But from so many days i am facing a problem on my Jetson TK1. I am totally blank whats going on with the system. I am just a novice with Jetson TK1.

First I took a Jetson TK1 for now name it as “J1” on which i installed CUDA, opencv, cudnn, caffe etc. using Jetpack 2.2.0.Here the L4T was 4.0, I wrote a code using Caffe which detects human and light up the LED when a human is detected. I build the project, compilation was successful and the executable got created , and it got executed pretty well.

Then what i did I took another Jetson TK1 suppose “J2” use the same Jetpack version and installed everything. Version of L4T was 4.0 .Then I used the same binaries of “J1” and gave a run on J2. It didn’t work and thrown this error ::
i reflashed the J2 and again gave a run it worked.

Then i used Jetpack version 2.2.1 downloaded and installed all the pee-requisites. Here the L4T was 5.0. I build the binaries in J1 and ran the binaries on J3 with L4T version 5.0. It worked. Then i used the same binaries and ran it on the J2(L4T 4.0) it worked. after couple of days i again ran the binaries (compiled on Jetson Tk1 version 5.0) onto a different Jetson (L4T 4.0). it failed. :(

i also checked whether it a opencv problem or something else. So i created a simple code based on opencv build it on different version Jetson TK1 and ran it on different version Jetson TK1 it worked, means Opencv is working fine.
Now i don’t know what is happening when i compile my Person Detection application.It’s behaving weired.
Every time i get the same kind of error.
Don’t know what is the problem…its frustrating.
Kindly help on this.

If you run this command you will see what your application is linked to (for illustration I call your program “persond”):

# cd to where "persond" is...
ldd persond

…then verify the links exist.

thanks for the reply.
I tried as you said. I tried 3 jetson boards. Build in one jetson tested on two. On one it worked but not on the other.

Again i build the code on the other Jetson name it as J2, then i compared the dependencies of the App from the App build on J1. Both are different, but the result it ran on the jetson on which my J1 binaries were not running and didn’t ran on the J3 on which J1 binaries were running…

The ldd command tells what the executable wants to link to. This can be influenced by compile time options and environment. In cases where ldd will not run (meaning error, versus answering that there is no linkage requirement) I would expect the executable may be for a different instruction set or non-elf environment. ldd essentially tries to execute parts of the code to find those dependencies…thus ldd would fail if the target is a shell script instead of an executable, or if the environment does not understand the file. For the case where ldd worked, what was its output?