I've googled for this problem for a whole day and finally find a solution. Actually in my case it is because relative path of interpreter(dynamic linker) in the makefile. Even though I use file and ldd command to see the file and it is indeed correct, AND the interpreter did find the correct interpreter: (something like this)
Code: Select all
pi@raspberrypi:~/netapp $ ldd my_executable_file
linux-vdso.so.1 (0x7ebaf000)
/usr/lib/arm-linux-gnueabihf/libarmmem.so (0x76fc7000)
libpthread.so.0 => /lib/arm-linux-gnueabihf/libpthread.so.0 (0x76f88000)
libboost_thread.so.1.53.0 => /lib/libboost_thread.so.1.53.0 (0x76f6e000)
libboost_system.so.1.53.0 => /lib/libboost_system.so.1.53.0 (0x76f64000)
libboost_serialization.so.1.53.0 => /lib/libboost_serialization.so.1.53.0 (0x76f01000)
libboost_filesystem.so.1.53.0 => /lib/libboost_filesystem.so.1.53.0 (0x76ee5000)
libboost_chrono.so.1.53.0 => /lib/libboost_chrono.so.1.53.0 (0x76ed6000)
libthrift-0.9.3.so => /usr/local/lib/libthrift-0.9.3.so (0x76e38000)
liblog4cxx.so.10 => /usr/local/lib/liblog4cxx.so.10 (0x76cac000)
libdl.so.2 => /lib/arm-linux-gnueabihf/libdl.so.2 (0x76c99000)
libstdc++.so.6 => /usr/lib/arm-linux-gnueabihf/libstdc++.so.6 (0x76bbd000)
libm.so.6 => /lib/arm-linux-gnueabihf/libm.so.6 (0x76b41000)
libgcc_s.so.1 => /lib/arm-linux-gnueabihf/libgcc_s.so.1 (0x76b14000)
libc.so.6 => /lib/arm-linux-gnueabihf/libc.so.6 (0x769d3000)
../tools/arm-bcm2708/arm-linux-gnueabihf/arm-linux-gnueabihf/lib/ld-linux-armhf.so.3 => /lib/ld-linux-armhf.so.3 (0x54b2b000)
librt.so.1 => /lib/arm-linux-gnueabihf/librt.so.1 (0x769bc000)
libssl.so.1.0.0 => /usr/lib/arm-linux-gnueabihf/libssl.so.1.0.0 (0x76962000)
libcrypto.so.1.0.0 => /usr/lib/arm-linux-gnueabihf/libcrypto.so.1.0.0 (0x767f3000)
libaprutil-1.so.0 => /usr/local/apr/lib/libaprutil-1.so.0 (0x767c0000)
libexpat.so.1 => /lib/arm-linux-gnueabihf/libexpat.so.1 (0x7678e000)
libapr-1.so.0 => /usr/local/apr/lib/libapr-1.so.0 (0x76752000)
libcrypt.so.1 => /lib/arm-linux-gnueabihf/libcrypt.so.1 (0x76713000)
You can see this line
../tools/arm-bcm2708/arm-linux-gnueabihf/arm-linux-gnueabihf/lib/ld-linux-armhf.so.3 => /lib/ld-linux-armhf.so.3 (0x54b2b000)
So it seems cannot use that. So I delete linker flag in makefile and it works now.
Hope it would help others who have the same problem and connot fix. Just provide another approach.