64位 linux操作系统下如何编译和运行32位源码

来源:互联网 发布:阿里巴巴怎么上传淘宝 编辑:程序博客网 时间:2024/06/06 17:26

1. 安装需要的库

X86_64 的 Redhat / Centos / Scientific 下面,若要编译、运行32位程序,需要安装以下包:


yum install libgcc.i686
yum install glibc-static.i686

yum install glibc-devel.i686


2. 编译器需要添加选项

gcc -m32 -c qljt.c


qljt.c 就会以32bit 的模式编译了,。


3. 链接的时候有时候会提示没有 -lstdc++

原因: 其实就是 stdc++ 的版本不对;

解决办法:
 1、执行命令: yum whatprovides libstdc++.so.6
 
然后会提示哪个安装包有这个库文件如下:
 
[root@localhost ~]# yum whatprovides libstdc++.so.6
 Loaded plugins: aliases, changelog, downloadonly, fastestmirror, kabi, presto, refresh-packagekit, security, tmprepo, verify,
              : versionlock
 Loading support for CentOS kernel ABI
 Loading mirror speeds from cached hostfile
  * base: centos.ustc.edu.cn
  * centosplus: centos.ustc.edu.cn
  * contrib: centos.ustc.edu.cn
  * extras: centos.ustc.edu.cn
  * updates: centos.ustc.edu.cn
 libstdc++-4.4.7-3.el6.i686 : GNU Standard C++ Library
 Repo        : base
 Matched from:
 Other      : libstdc++.so.6[root@localhost app]# yum whatprovides libstdc++.so.6
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.opencas.cn
 * extras: mirrors.pubyun.com
 * updates: mirrors.skyshe.cn
libstdc++-4.8.5-4.el7.i686 : GNU Standard C++ Library
Repo        : base
Matched from:
Provides    : libstdc++.so.6

2、然后执行:

 [root@localhost app]# yum install libstdc++-4.8.5-4.el7.i686


0 0
原创粉丝点击