默认的GCC编译选项会编译出与系统一致的输出,例如64位直接使用gcc或g++编译出的为64位程序或库,而32位系统编译的是对应32位的。
可以通过在编译时添加选项-m32
或-m64
来指定编译生成的相应版本,如果同时带上这2个选项,只有后一个会生效。
问题的关键时多数时候会提示缺少库,这里以64位下编译32位程序为例,给出ubuntu和centos下相关依赖包。
Ubuntu下依赖包
没什么好说的,安装了这些依赖就能用了
1 | sudo apt-get install build-essential module-assistant |
Centos下依赖包
Centos下的包好多名字与ubuntu下都不一样,应该说rpm系与dpkg系通常不一样
1 | yum install glibc-devel.i686 libstdc++-devel.i686 |