【发布时间】:2013-07-09 00:11:53
【问题描述】:
我正在开发一个模拟器,我使用XCode 和Boost 库在我的Mac OS 10.6 上进行了编码。我想在我的大学服务器上运行它(一些Linux Red Hat x86),但是在服务器上运行由XCode生成的可执行文件时:“./simulator: Exec format error. Wrong Architecture”。显示出来。
我无法在服务器上编译我的代码,因为 Boost 没有安装,我没有安装它的权利。
如何生成可以在此 Linux 服务器上运行的可执行文件?使用 XCode 还是命令行?
注意:我可以在我的计算机上运行我的代码,但在服务器上会快得多。
【问题讨论】:
-
本地编译通常很好——在服务器上构建它。服务端架构不同,需要在该架构下编译。
-
你需要一个交叉编译器。建造一个通常的先决条件是献祭处女。这是可能的,但对于任何类型的大学工作来说,这是一个大量切线 - 将程序更改为仅使用目标环境中可用的库可能更容易。
-
另外,由于 Boost 库大多是仅头文件,您不能将它们的源代码包含在您的项目中并以这种方式在 uni 机器上构建它吗?同样,没有理由需要在目标机器上安装。
-
如果你是自虐狂,你可以做的是为 OS X 编译,然后run the OS X binary on Linux。
-
@millimoose 是的,这是可能的。我对时间很着迷,但我不太了解 Boost 的实现细节来尝试它。似乎很容易错过依赖项。我想我会用我的眼睛哭泣......
标签: c++ linux macos cross-compiling