c - 是否可以在 linux 上为许多体系结构编译 c?

标签 c linux compilation

我正在我的电脑上开发一些程序,运行 Ubuntu 64 位。

我想在另一台运行 32 的电脑上运行这些应用程序。可以在我的机器上编译还是需要在另一台电脑上重新编译应用程序?

最佳答案

一般情况下你需要给编译器提供一个类似于目标执行环境的环境。根据一个环境与另一个环境的相似或不同程度,这可能是简单的也可能是复杂的。

假设编译器是 GCC,你应该只需要添加 -m32 到你的编译标志,使它们在 32 位系统上工作;假设所有其他事情都是平等的。确保您的系统上安装了必要的 32 位依赖项(这意味着基本 C 库依赖项以及您的应用程序链接到的每个库的 32 位版本)。

由于您只是在 64 位主机上针对 x86 进行编译,因此实现这一目标的路径通常很简单。不过,我建议设置一个专用环境,您可以使用它来编译——通常是某种 chroot(参见 pbuilderschroot、< em>chroot、debootstrap 等)。

关于c - 是否可以在 linux 上为许多体系结构编译 c?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28703309/

相关文章:

c - 在运行前台进程时等待后台进程终止

c - 使用指针进行字符串复制会出现问题

c++ - 创建无符号 80 位变量

java - 我如何在 bash 中设置 JAVA_HOME?

linux - 将 Controller 请求记录到 tg2 中的系统日志

linux - 找出内存占用大小

svn - Maven - 从 SVN 拉取代码

c++ - 使用 cmake 构建我的 C++ 项目的正确方法?

c++ - ld路径更新用于编译

c - 给定结构中灵活数组成员的绝对地址,如何获取结构的绝对地址?