Wie hier bereits ausführlich bequatscht wurde, kommt es auf das Dateisystem des Datenträgers an, worauf die Datei kopiert wurde. Wenn das ein _nicht_-Linux-Dateisystem ist wie FAT oder NTFS usw dann gehen Dateiattribute verloren. Nimmt man aber ein Linux-Dateisystem wie ext3, ext4 usw dann bleiben die Attribute bestehen.
Am besten merkst du dir einfach:
Du kopierst die Datei und stellst anschließend auf dem Ziel-System sicher dass die Datei Ausführrechte besitzt, was du mithilfe von "chmod +x DATEI" bewerkstelligst.
Wenn die Ausführrechte fehlen dann funktioniert eine direkte Ausführung ala " ./datum " nämlich nicht.
Das was Aro auf Seite#1 geschrieben hat ist daher unvollständig und so wie es da steht leider nicht richtig - sorry aber auch mit prellen von !!!! wird das nicht besser.
Als nächstes gibt es 2 verschiedene Arten ein Programm zu kompilieren: shared- und static linked.
Shared-Linked bedeutet das Libraries nicht in die entstehende Binary eingefügt werden und somit die Programm-Datei kleiner wäre. Es müssen dann aber die benötigten Libs auf dem System installiert sein.
Static-Linked integriert die Libs in die Binary und wäre somit unabhängig der auf dem System installierten Libs. Das funktioniert aber nicht immer da manche Libs gewisse Abhängigkeiten haben, zB zu glibc...
Vermutlich hast du auf dem 1.Pi eine shared-Binary erstellt und musst jetzt halt sicherstellen das die Libs auf dem 2.Pi installiert sind damit es funktioniert.
Dein zuletzt gezeigtes Problem bzw Programm hat aber nur etwas mit den eXecute Rechten der Datei zu tun
Siehe dazu auch:
https://wiki.ubuntuusers.de/Rechte/
https://wiki.ubuntuusers.de/chmod/