what's the different between "ar" and "arm-linux-ar"

I find that when I want to cross-compier application for arm platform,Maybe it need to specify AR=arm-linux-ar,but if I don't specify it, it will use default one--ar,and both can works well,I think ar and arm-linux-ar is just a different ,I don't know whether I'm right.

I hope someone show me the way.

Thanks

They may be one and the same:

$ whereis ar
ar: /usr/bin/ar /usr/include/ar.h /usr/share/man/man1p/ar.1p.bz2
$ ls -l /usr/bin/ar
$lrwxrwxrwx 1 root root 22 Jan 21 19:22 /usr/bin/ar -> x86_64-pc-linux-gnu-ar

Unless you're planning on taking the ar executable itself to run on a different system, I think ar is ar, they should produce object archive files compatible with each other. They just installed a complete gcc toolkit for both architectures, resulting in a little overlap.

now for gcc, there'd be a vast difference as plain gcc would produce native binaries and arm-linux-gcc would produce arm binaries.

OK, Got it,I have another question, ar and arm-linux-ar is the same, ranlib and arm-linux-ranlib is not the same, I know ranlib can't instead of arm-linux-ranlib,but I don't know what's the difference?

ranlib is equivalent to ar -s. If the x86 version won't work for arm, then I'm mistaken, and you should probably be using the arm version of ar for arm things.