高分求问关于32bit向64bit系统移植问题。

meino 2004-09-03 12:04:40
我的程序在32bit的机器上运行正常,移植到IA64的安腾机器,在64位的系统中编译通过,但运行总是Segmentation fault或异常退出。
不过,编译的时候遇到一些警告:
cast to pointer from integer of different size。
不知是不是这个原因的影响。
在32位的系统中没有这些警告,因为是32位的内存地址长度为4字节,而在64位中是8字节。
不知道哪位高人能给予指点和帮助。高分送上
注:编译工具gcc version 2.96,操作系统Red Hat Linux Advanced Server release 2.1AS
...全文
105 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
meino 2004-09-06
  • 打赏
  • 举报
回复
升级gcc版本到 3.4.1(最新的),将32位的动态链接库屏蔽或重新编译,问题1、2、3、4没有出现,但是原先编译没有错误的现在出现:
ProxyRegServerEvents.c: In function `ProxyRegServerGetPolicyEvents':
ProxyRegServerEvents.c:102: warning: assignment from incompatible pointer type
ProxyRegServerEvents.c: At top level:
ProxyRegServerEvents.c:430: error: conflicting types for 'ProxyRegServerTranscSt
ateChangedEv'
ProxyRegServerEvents.h:145: error: previous declaration of 'ProxyRegServerTransc
StateChangedEv' was here
ProxyRegServerEvents.c:430: error: conflicting types for 'ProxyRegServerTranscSt
ateChangedEv'
ProxyRegServerEvents.h:145: error: previous declaration of 'ProxyRegServerTransc
StateChangedEv' was here
而检查文件,一个是在.h中声明,一个是在.c中定义,不明白为何有冲突错误呢?
lovessm 2004-09-03
  • 打赏
  • 举报
回复
yeah, maybe
hcj2002 2004-09-03
  • 打赏
  • 举报
回复
查一下 编译工具gcc version 2.96 是否支持64位的程序。
blh 2004-09-03
  • 打赏
  • 举报
回复
try higer version gcc (such as gcc 3.3).

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧