I have successfully cross-compiled one program for my BB…
When I run it on my BB (./ahaha) i get the following errors:
./ahaha: /usr/lib/libstdc++.so.6: version
GLIBCXX_3.4.14' not found (required by ./ahaha) ./ahaha: /usr/lib/libstdc++.so.6: version CXXABI_ARM_1.3.3’ not found (required by ./ahaha)
And, indeed, when i type: “strings /usr/lib/libstdc++.so.6 | grep GLIBC” I get:
The version of gcc which I use on my desktop computer is 4.6.1!
So, is the solution for my problem to go back to some of the previous versions or what. (I guess this goes the same with CXXABI_ARM_1.3.3) The Angstrom distribution which I have on my BB is 3.5.0+
Or should I change the version of sourcery-tools which I use for cross-compiling?
So, these two guys I’m missing are actually dynamic libraries. My Sourcery Code cross-compiler calls them during linking time (on my desktop) of compilation (but it will not insert object files from them into program) and he satisfies when no symbols are missing. But on BB, during the run time, system dynamic loader can’t find these two because they are simple not there… Hmm… What to do?
Just copy them on your SD card (there are in your cross-compile toolchain installation), directory /lib.
I tried that yesterday, but it didn’t work. Eventually I come across this blog: www.trilithium.com/johan/2005/06/static-libstdc/
I came to idea to compile my program with libstdc not being dynamic, rather static library. I saw then that there are a bunch of people who want to do the very same thing, and this guy explained it how. So just put this “-static-libstdc++” when calling g++.
Finally, I can test my algorithm on BB!