我正在我的电脑上开发一些程序,运行 Ubuntu 64 位。
我想在另一台运行 32 的电脑上运行这些应用程序。可以在我的机器上编译还是需要在另一台电脑上重新编译应用程序?
最佳答案
一般情况下你需要给编译器提供一个类似于目标执行环境的环境。根据一个环境与另一个环境的相似或不同程度,这可能是简单的也可能是复杂的。
假设编译器是 GCC,你应该只需要添加 -m32
到你的编译标志,使它们在 32 位系统上工作;假设所有其他事情都是平等的。确保您的系统上安装了必要的 32 位依赖项(这意味着基本 C 库依赖项以及您的应用程序链接到的每个库的 32 位版本)。
由于您只是在 64 位主机上针对 x86 进行编译,因此实现这一目标的路径通常很简单。不过,我建议设置一个专用环境,您可以使用它来编译——通常是某种 chroot
(参见 pbuilder、schroot、< em>chroot、debootstrap 等)。
关于c - 是否可以在 linux 上为许多体系结构编译 c?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28703309/