Chinaunix

标题: 在32位和64位系统开发 [打印本页]

作者: netmwd    时间: 2008-07-15 10:44
标题: 在32位和64位系统开发
请教各位高手,开发一个系统,分别在32位和64位机器上重新编译并运行,程序中需要注意什么?
作者: prolj    时间: 2008-07-15 10:45
类型长度不一样
作者: er6hcnm    时间: 2008-07-15 10:46
知道64大于32,就没什么需要注意的了。
作者: netmwd    时间: 2008-07-15 10:54
标题: 回复 #2 prolj 的帖子
请问一下,程序中应该如何处理呢
作者: 77h2_eleven    时间: 2008-07-15 10:56
要注意指针的长度
作者: netmwd    时间: 2008-07-15 10:58
标题: 回复 #5 77h2_eleven 的帖子
大哥,能不能具体说一下,小弟是个菜鸟!
作者: erqb    时间: 2008-07-15 11:42
标题: 回复 #1 netmwd 的帖子
如果你的程序是用纯C语言在32位平台系统上开发的,如果你想移植到64位平台系统上,只须在64位平台上重新编译就行了,代码几乎不需改动。
作者: netmwd    时间: 2008-07-15 11:46
标题: 回复 #7 erqb 的帖子
哦,谢谢你

我的程序里面是c和c++混合的,请问这样在64位上重新编译,可以吗?
作者: erqb    时间: 2008-07-15 11:55
标题: 回复 #8 netmwd 的帖子
可以。不过C++太躁动,没定性,即时有问题也是可以理解的。
作者: prolj    时间: 2008-07-15 12:17
http://www.ibm.com/developerworks/cn/linux/l-port64.html
只要稍微google一下,baidu也可以。
作者: Godbach    时间: 2008-07-15 13:04
关于数据类型的长度,首先要确定一下两个平台的区别。
作者: lanying_wzw    时间: 2008-07-15 23:30
要注意字节对齐,小心BUS error
作者: ivhb    时间: 2008-07-15 23:50
还有严格的用函数的原型来做。
比如,不要想当然的用int来替代原型中的ssize_t
32位平台下没有问题,到了64位上就有问题。
嗯。。。
基本上就是要注意 long和指针,其他应该问题不大。
作者: baidu85    时间: 2008-07-16 00:09
数据类型的定义要看看是否符合64位的要求
像Linux中type.h的定义的数据类型size_t pid_t 等
在32位上实际上就是int型,它这样定义就是为了在64位上移植,因为你只需改size_t的宏定义就行了




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2