博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ubuntu16 64位 编译64位程序和32位程序
阅读量:6004 次
发布时间:2019-06-20

本文共 1527 字,大约阅读时间需要 5 分钟。

安装了ubuntu16 64位的系统,想在该环境下用gcc编译64位和32位的程序

默认已经安装了64位环境的gcc

1. 首先确认安装的环境是不是64位的

cocoa@cocoaUKlyn:~/Desktop$ dpkg --print-architecture以下输出表示为64位的amd64

2. 确认系统是否支持多架构环境

cocoa@cocoaUKlyn:~/Desktop$ dpkg --print-foreign-architectures以下输出表示支持32位的架构i386

 如果不支持那么手动打开,如下

sudo dpkg --add-architecture i386sudo apt-get updatesudo apt-get dist-upgrade

3. 安装支持32编译程序的gcc库

sudo apt-get install gcc-multilib g++-multilib

4. 编译一个测试程序 main.c如下

int main(int argc,char *argv[]){    if(argc!=2)    {        printf("please input one argv\n");        return 0;    }    printf("argc=%d ,argv[1]=%s\n",argc,argv[1]);    return 0;}

5. 分别编译出64位,32位的可执行程序,main64,main32

cocoa@cocoaUKlyn:~/Desktop$ gcc -o main32 -m32 main.c cocoa@cocoaUKlyn:~/Desktop$ gcc -o main64 -m64 main.c

6. 使用file命令查看编译的程序架构,

cocoa@cocoaUKlyn:~/Desktop$ file main64 main64: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=f8573379cf22e444381d36eec08862e69a90ae4d, not strippedcocoa@cocoaUKlyn:~/Desktop$ file main32 main32: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=cbff7c2ddf45b505ffd1e60adce482c0cc896475, not stripped

7. 运行编译的64位,32位测试程序

cocoa@cocoaUKlyn:~/Desktop$ ./main64 this64argc=2 ,argv[1]=this64cocoa@cocoaUKlyn:~/Desktop$ ./main32 this32argc=2 ,argv[1]=this32

 

参考:https://www.cnblogs.com/mliudong/p/4086797.html

 

转载于:https://www.cnblogs.com/cocoajin/p/7807977.html

你可能感兴趣的文章
ActiveMQ集群简单测试+eclipse Zookeeper 插件 + 负载均衡
查看>>
Android高级部分(五)
查看>>
require--按需加载js与模块化
查看>>
我的友情链接
查看>>
svmlight使用说明
查看>>
oracle创建表空间 删除表空间 创建用户 删除用户相关SQL
查看>>
查看mysql版本的四种方法
查看>>
LVM
查看>>
学习之shell脚本
查看>>
Andorid Launcher程序代码分析
查看>>
Swing 和AWT之间的关系
查看>>
【Android必备】构建一个App小部件(24)【代码块异常】
查看>>
【Touch&input 】支持游戏控制器(15)
查看>>
【Interface&navigation】添加并处理操作(46)
查看>>
Mysql设置自增长主键的初始值
查看>>
Android计时器正确应用方式解析
查看>>
手机视频会议的实现
查看>>
性能及监控
查看>>
linux系统CPU、内存、硬盘、网络、lnmp服务整体监控邮件报警
查看>>
我的友情链接
查看>>