我有一个非常简单的 C 程序,它仅使用标准库函数进行一些加密计算。
我将在 Ubuntu(10.04,32 位)上运行该程序,并使用带 -m32 标志的 cc 在 OS X 10.6 上编译它。当我尝试在 Ubuntu 上运行它时,收到错误消息“无法执行二进制文件”。
当我在 Ubuntu 上编译它时,它运行良好。
有没有什么简单的方法可以将 OS X 上的代码编译成可以在 Ubuntu 上运行的二进制文件?如果不是,那么导致二进制文件不兼容的差异是什么?
您需要设置交叉编译器。使用 GNU 工具链,该过程如下所示:
- 下载binutils http://ftp.gnu.org/gnu/binutils/, gcc http://gcc.gnu.org/mirrors.html, and glibc http://ftp.gnu.org/gnu/glibc/.
- 解压 bintuls(例如 binutils-x.y.z)。
- mkdir binutils-linux
- cd binutils-linux
- ../binutils-x.y.z/configure --target=i386-ubuntu-linux (不确定确切的目标)
- make
- 须藤进行安装
- cd ..
- 解压 gcc(类似于 gcc-x.y.z)。
- mkdir gcc-linux
- cd gcc-linux
- ../gcc-x.y.z/configure --target=i386-ubuntu-linux (不确定确切的目标)
- make
- 须藤进行安装
- cd ..
- 解压 glibc(例如 glibc-x.y.z)
- mkdir glibc-linux
- cd glibc-linx
- ../glibc-x.y.z/configure --target=i386-ubuntu-linux (不确定确切的目标)
- make
- 须藤进行安装
- cd ..
我从未尝试过 OSX 作为主机操作系统,所以我不知道是否有任何其他并发症,但这是一般方法。我是凭记忆工作的,所以如果您需要更多帮助,请添加评论。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)