X86_64机器编译运行32位程序
来源:互联网 发布:c语言中的&是什么意思 编辑:程序博客网 时间:2024/05/21 15:07
在最近的模拟器项目中,遇到了X86_64机器编译运行32位程序 的问题,感觉挺有意思的!
在操作这个模拟器时,以前都是在32位机器上编译运行的,运行一切ok!
可是,实验室换新电脑了,是64位的!
而且因为模拟器是32位系统上的,并不兼容64位系统,因此模拟器能且只能在32位系统上运行!
其实,32位与64位差别并不是太大,比如short,int类型(int(包括int)类型以下的)的字节数都是相同的
但是long类型,32位机器上是4B,而64位机器上是8B,而模拟器上用到了swap4byte()函数,其中用到了
unsigned long类型,所以如果直接在64位编译的话默认是产生64位程序,那么unsinged long就是8B,
从而swap4byte()函数就不能正确实现交换4B的功能了。
所以,要想在64位机器上编译运行32位程序,需要在64位系统上配置32位的环境。
1. 在Ubuntu里,用sudo apt-get install libc6-dev-i386来配置32位的编译运行环境,让gcc在编译链接时,正确地使用32位的库文件dll。
2. 然后,在gcc编译链接时加上-m32选项就ok了!
如果在64位win7下没有使用虚拟机+ubuntu,那么可以下载一个cygwin32位的来编译。
20141130
0 0
- X86_64机器编译运行32位程序
- X86_64机器编译32位程序
- Linux64位机器运行32位程序
- CentOS x86_64上编译32位demo程序
- Ubuntu 64位机器上运行32位程序
- 如何在linux 32位机器编译64位程序
- 64位机器上 编译32位程序
- 在64位机器上VS2012编译的32位程序在XP系统上运行提示Wow64EnableWow64FsRedirection无法定位于输入点
- Fedora 21 x86_64 上运行32位软件
- win7 64位平台编译的程序在XP 32位平台无法运行的解决方法
- 如何让32位编译的程序在64位系统中正常运行
- 如何在ubuntu14.04(64位)编译运行32位程序
- 如何在ubuntu14.04(64位)编译运行32位程序
- 如何在ubuntu14.04(64位)编译运行32位程序
- 64 位 Arch Linux 系统上运行和编译 32 位程序。
- “32位程序/64位程序” VS “32位机器/64位机器” 那点事
- 在其他机器无法运行程序编译出来的程序
- 64位系统运行32位程序
- 狗民网:狗与爱的世界
- 第十四周项目五 体会棋盘游戏中的数据存储
- nginx 基本配置分析
- 鬼地方个地方官梵蒂冈地方
- 想简略实现网站的快速排名
- X86_64机器编译运行32位程序
- true 和 TRUE 区别
- C#程序中访问配置文件
- Scale Out将是未来的企业架构
- Python打包的艺术(二)- Packaging Tools的昨天,今天,明天
- 【UML】3.类图的读和画
- 《数据结构》第六章 图 教学设计
- 关于LINUX C库函数 中的 fprintf
- <六>AOP面向切面——注解方式声明切面(附源码)