尽管有一点经验,但我仍然对是否需要在具有不同 Linux 版本(例如 CentOS 4.7 版)的机器共享的网络文件系统下安装应用程序和/或构建 C++ 程序或 C++ 库的问题感到困惑, 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.),这样可执行文件或库文件可以在那些不同的机器下使用吗?这里的原则是什么?
例如,在网络文件系统上,我在 CentOS 版本 4.7、x86_64 和 gcc/g++ 3.4.6 20060404 (Red Hat 3.4.6-10) 的机器下从我的 C++ 程序构建了一个可执行文件。我惊讶地发现可执行文件可以在另一台装有 Ubuntu 8.10、x86_64 和 gcc/g++ (Ubuntu 4.3.2-1ubuntu12) 4.3.2 的机器下使用。此外,当可执行文件在第二台机器上运行时,我在第一台机器上构建并由我的程序使用的所有共享库都不会报错。我很担心在不同机器上运行的可执行文件是否会产生可靠的结果?
另一个例子,我记得在 64 位机器上构建的可执行文件不能在 32 位机器上运行。但是反过来呢,在 64 位机器上运行一个在 32 位机器上构建的可执行文件呢?跨不同位机构建和使用的 C++ 库文件怎么样?
如果可能的话,你能否给我一些参考资料,比如一些与我的问题相关的网页、书籍等?
谢谢并恭祝安康!