ubuntu16 64位 编译64位程序和32位程序
安装了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 i386
sudo apt-get update
sudo 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!=)
{
printf("please input one argv\n");
return ;
}
printf("argc=%d ,argv[1]=%s\n",argc,argv[]);
return ;
}
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 -bit LSB executable, x86-, version (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-.so., for GNU/Linux 2.6., BuildID[sha1]=f8573379cf22e444381d36eec08862e69a90ae4d, not stripped
cocoa@cocoaUKlyn:~/Desktop$ file main32
main32: ELF -bit LSB executable, Intel , version (SYSV), dynamically linked, interpreter /lib/ld-linux.so., for GNU/Linux 2.6., BuildID[sha1]=cbff7c2ddf45b505ffd1e60adce482c0cc896475, not stripped
7. 运行编译的64位,32位测试程序
cocoa@cocoaUKlyn:~/Desktop$ ./main64 this64
argc= ,argv[]=this64
cocoa@cocoaUKlyn:~/Desktop$ ./main32 this32
argc= ,argv[]=this32
参考:https://www.cnblogs.com/mliudong/p/4086797.html
ubuntu16 64位 编译64位程序和32位程序的更多相关文章
- Linux:使用rpcgen实现64位程序调用32位库函数
摘要:本文介绍使用rpcgent实现64位程序调用32位库函数的方法,并给出样例代码. 我的问题 我的程序运行在64位Linux系统上,需要使用一个从外部获得的共享库中的函数,这个共享库是32位的,无 ...
- 解决windows server2003 64位操作系统上不能加载32位应用程序dll 的问题
[FileLoadException: Could not load file or assembly 'sapnco_utils, Version=3.0.0.42, Culture=neutral ...
- openstack安装系列问题:window7 64位安装的virtualBox 只能选择32位的系统安装不能选择64位的系统安装
个人原创,转载请注明作者,出处,否则依法追究法律责任 2017-10-03-12:22:22 现象:window7 64位安装的virtualBox 只能选择32位的系统安装不能选择64位的系统安装 ...
- win7 32位支持多大内存|win7 32位旗舰版最多能识别多少内存
win7 32位支持多大内存|win7 32位旗舰版最多能识别多少内存 内存的大小决定系统运行速度,所以不少人认为只要内存加大就行了,其实这是不对的,因为win7 32位能支持的内存大小是有限制的,并 ...
- 关于oracle 11g 64位与 32位的 plsql、及其他32位应用程序共存的问题
因为 plsql 不支持 64位 oracle 客户端,所以plsql 必须使用 oracle 的 32位 instanclient 包. 解压缩后放一个目录,例如: D:\Oracle\insta ...
- 查看Eclipse32位还是64位以及Eclipse的编译版本号,查看JDK是32位还是64位
一.查看Eclipse是32位还是64位 首先进入到Eclipse的安装目录: 查找到文件名为"eclipse.ini" 文件,使用文本编辑工具,或记事本打开,如下图: 以上是查看 ...
- This problem will occur when running in 64 bit mode with the 32 bit Oracle client components installed(在64位模式下运行安装了32位的Oracle客户端组件时,会发生此问题)
部署win服务时出现下面的问题: 在事件查看器中看到如下错误: 日志名称: Application来源: ***调度服务日期: 2014/5/21 12:53:21事件 ID: 0任务类别: 无级别: ...
- 64位系统里的IIS运行32位ODP.NET的方法
在64位Win7里的IIS里部署使用了ODP.NET的网站,Oracle的版本是11.20.3.20.直接部署会提示错误:在64位环境里使用了32位的程序.自己折腾了两天,最后才从别人的博客里找到解决 ...
- 64位win2008下IIS未开启32位支持导致DLL无法加载问题
部署一个WEB项目,在本机.本地服务器都没有问题,但部署到远程服务器以后,提示有个DLL无法加载: Server Error in '/' Application. Could not load fi ...
随机推荐
- ROS----TUT-RIM协作机器人和Actin-ROS接口
TUT-RIM: Collaborative Intelligent Heavy Machinery and Robotics http://www.ros.org/news/2017/02/tutr ...
- 使用siege执行压力测试
没有安装siege? 可参考我的另一篇博客 使用siege执行压力测试笔记 场景分析 使用siege对https://www.baidu.com/进行加压. 要求 模拟20个用户同时访问 一共跑3个循 ...
- springMVC3学习--ModelAndView对象(转)
原文链接:springMVC3学习(二)--ModelAndView对象 当控制器处理完请求时,通常会将包含视图名称或视图对象以及一些模型属性的ModelAndView对象返回到DispatcherS ...
- 使用SqlSugar 4.X的T4生成实体类
<#@ template debug="false" hostspecific="true" language="C#" #> ...
- Xshell不能使用退格、删除键进行删除的解决方法
xshell在输入命令时,如果敲错字母了的时候,想通过按退格键删除敲错的字母,却在屏幕显示出了“^H”,退格不行,再按删除键,却显示出“^[[3~”,怎么着就是删除不了输错的字母. 修改办法:文件-- ...
- HDU 4763 求最大长度的串A,使得S满足APAQA
给一个串,让你找一个子串,形如EAEBE,就是一个串在开头结尾中间各出现一次,问这个E最长是多少 Sample Input5xyabcaaaaaaabaaaxoaaaaa Sample Output0 ...
- gitlab的docker安装,非标准端口,如何处理?
这个问题的定义是: 如果我们不是用的80端口对外提供服务, 但gitlab的docker容器里的nginx却是80端口, 那么,在我们clone代码时,带的Http地址也会是80端口,这显然会出现问题 ...
- P3331 [ZJOI2011]礼物(GIFT)
题解: 首先转化为平面问题 对于每一个z,f(x,y)的值为它能向上延伸的最大高度 ...莫名其妙想出来的是n^4 以每个点作为右下边界n^3枚举再o(n)枚举左下边界计算z的最大值 然而很显然这种做 ...
- Linux与Windows中的UTC时间
Linux与Windows中的UTC时间 先介绍几个术语 UTC 协调世界时,又称世界标准时间或世界协调时间,简称UTC(从英文“Coordinated Universal Time”/法文“Temp ...
- Linux下安装JDK7和TomCat7
[BEGIN] 2016/9/9 14:20:49[root@rzhd jdk]# ll总用量 149916-rw-r--r-- 1 root root 153512879 9月 9 14:20 jd ...