g++只针对linux进行跨平台编译

g++ compiling for linux only cross-platform

本文关键字:跨平台 编译 linux g++      更新时间:2023-10-16

我有兴趣设置一个远程服务器来运行一些密集的计算。由于各种原因,我可能想要运行一个不同于我的dev-box的linux发行版。假设硬件是正确的目标,并且我将自己限制在ISO C库中,那么在linux发行版上运行与代码g++编译版本不同的可执行文件会出现任何问题吗?

在我的具体案例中,我的开发箱是最新的基于Ubuntu的。有没有linux发行版会挂断基于Ubuntu的g++编译的代码?在选择远程服务器发行版时,我应该寻找什么来确保无故障运行?

我在笔记本电脑和台式机上运行了大量计算密集型代码。直到我最近不得不更换我的笔记本电脑,这是一台速度慢得多的机器,RAM比我的台式机少得多,所以这与你描述的情况类似。

如果你的代码计算量很大,你可能会希望它针对运行它的任何机器进行优化,无论是你的开发箱还是远程服务器。我认为最简单的方法是为您的代码设置一个makefile,这样您就可以将makefile和源代码复制到远程服务器上,然后只要dev-box和服务器都是相同版本的gcc和代码所需的任何其他库依赖项,您就只需发出make命令即可在远程服务器上构建代码。如果你需要一个关于makefile的快速教程,当我第一次开始使用它们时,这篇教程对我很有帮助。

这样做的好处是,你可以在一台计算机上使用较小的数据集、较低分辨率的网格或任何你需要做的事情来开发和测试代码,以降低计算强度。然后,一旦你知道它在工作,就把它转移到一台功能更强大的机器上,让它真正运行更强大的版本。通过调用make命令,g++可以使用-march=native-mtune=native等标志来确保代码针对远程服务器的CPU进行优化,而且由于代码是在该计算机上编译的,因此您不必担心构建在一台计算机上的可执行文件是否可以在另一台计算机中运行。