Несмотря на небольшой опыт, меня все еще смущает вопрос о том, необходимо ли устанавливать приложение и / или создавать программу C ++ или библиотеку C ++ в сетевой файловой системе, совместно используемой компьютерами, которые имеют разные версии Linux (например, CentOS выпуск 4.7, Ubuntu 8.10), возможно, другой бит (например, 32-битный, 64-битный) и разные версии компилятора (например, gcc / g ++ 3.4.6 20060404 (Red Hat 3.4.6-10), gcc / g ++ (Ubuntu 4.3.2-1ubuntu12) 4.3.2.), Чтобы исполняемые файлы или файлы библиотеки могли использоваться на этих разных машинах? Какие здесь принципы?
Например, в сетевой файловой системе у меня есть исполняемый файл, созданный из моей программы на C ++ под машиной с CentOS версии 4.7, x86_64 ad gcc / g ++ 3.4.6 20060404 (Red Hat 3.4.6-10). Я с удивлением обнаружил, что исполняемый файл можно использовать на другом компьютере с Ubuntu 8.10, x86_64 и gcc / g ++ (Ubuntu 4.3.2-1ubuntu12) 4.3.2. Также все общие библиотеки, которые я собрал на первой машине и которые использовал моя программа, не жалуются на ошибку, когда исполняемый файл запускается на второй машине. Я так волнуюсь, если запуск исполняемого файла, созданного на другом компьютере, даст надежные результаты?
Другой пример, я помню, исполняемый файл, построенный на 64-битной машине, не может работать на 32-битной машине. Но как насчёт того, чтобы запустить на 64-битной машине исполняемый файл, построенный на 32-битной машине? Как насчет файлов библиотеки C ++, созданных и используемых на разных битовых машинах?
Если возможно, не могли бы вы указать мне какую-нибудь ссылку, например, какую-нибудь веб-страницу, книгу, ... которые связаны с моими вопросами?
Спасибо и всего наилучшего!