在ubuntu 8.04 x86_64系统上编译32位程序 |
发布: 2008-10-28 15:03 |
今天移植一个用c写的程序,没想到在新系统编译运行后一直出现莫名其妙的内存问题。 最后才发现是因为新服务器是64位系统的问题,原来使用的服务器是32位的。 在网上看了几篇关于从32位移植到64位的文章,知道是一些数据类型长度变化的问题, 但是一时半会也改不完,就先把程序编译成32位运行着吧。 gcc有一个参数 -m32 ,可以编译出来32位的程序。 同样ld也有一个 -m32 , 链接成32位程序。 当然这个参数是相对于 -m64来说的,意思是编译不同位数系统的可执行程序。 在编译的时候需要注意,gcc要支持 multilib。另外还要有32位的库文件。 像这个系统,有lib/ lib32/ lib64/ 几个目录,分别存储不同cpu架构 的运行库。 |
原文: http://qtchina.tk/?q=node/256 |
Powered by zexport
|