一、32位程序可以在64位系统中运行吗?
答案是:可以。64位系统可以向下兼容运行32位程序,但是32位系统不能运行64位程序。
二、在在64位x86 ubuntu上面编译32位应用程序
2.1、查看Linux是多少位数 命令
getconf LONG_BIT
2.2、安装依赖
gcc -v
显示:
Target: x86_64-linux-gnu
所以,我这里的gcc默认生成64位的程序。
如果想编出32位的程序,就要加 -m32选项。可是我尝试了,还是不行。
原来,需要安装东西。
$ sudo apt-get install build-essential module-assistant
$ sudo apt-get install gcc-multilib g++-multilib
装好之后,就OK了。
3.3、32位的可执行程序也可以运行,如下图。
三、分别用android 源码里面的64位和32位编译器编译出可执行文件放到64位的arm板子上面进行测试,也是都可以运行。
3.1 arm交叉编译出两个可执行文件
3.2 把可执行文件放到arm板子上面去运行,arm板子是运行android8 的64 位cpu系统。