运行 windows linux 集群上的 C++ 代码

running windows C++ code on a linux cluster

我的程序最近在提高精度时出现 bad_alloc 错误。我的猜测是,它需要比我的计算机可以分配的更多的 RAM(实际上需要超过 3GB 的 RAM)。 所以我决定在我们的 linux 集群上尝试它,因为它可以给我更多的内存。它包含一些 gcc 模块。但我不确定如何在其上使用我的 C++ 代码。我可以 运行 集群上的 .exe 还是应该先在 linux 集群上重新编译它?

好吧,如果我理解正确的话,你肯定需要在集群上重新编译你的代码。您已经在 Windows 平台上构建了您的应用程序,因此二进制文件无法在 linux 目标系统上运行。

有一些方法可以在 Linux 上制作 Windows 个可执行文件 运行,例如Wine but usually you want a native Linux executable. Executables have a different file format on Windows (EXE) and on Linux (ELF).

你的选择是

  • 在没有其他工具的情况下重新编译代码和运行程序或
  • 使用工具,例如Wine,可以在 Linux.
  • 上 运行 Windows 可执行文件

如果您的代码可以在不同的系统上编译取决于您的代码。您是否使用了 Windows 个库?你有没有使用第三方库?您是否使用了编译器扩展?

大多数第三方库通常也可以在 Linux 上使用。对于仅 Windows 的库和编译器扩展,您必须找到解决方法。