同一段纯C程序在Linux下和ARM下结构不同

devildi 2015-11-05 04:09:44
我这里有一段纯C写的程序,在Linux和ARM均编译通过生成可执行文件,然后在linux下的结果正确无误,但是在ARM下却结果有误,不知道为什么,按理说纯C写的程序是可移植的啊~~~~~~~~求大神们指导!!!!
...全文
391 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
fly 100% 2015-11-25
  • 打赏
  • 举报
回复
涉及到内存地址等都有可能不一样啊 寻址能力大小端也有可能
dengchonglin 2015-11-25
  • 打赏
  • 举报
回复
太笼统了,把CODE贴出来大家一起看看,问题一下就可以解决了
rlini 2015-11-23
  • 打赏
  • 举报
回复
我发帖为什么老是说系统维护??
zhujinqiang 2015-11-21
  • 打赏
  • 举报
回复
使程序可移植的本质非常简单:如果做某些事情有一种既简单又标准的方法,就按这种方法做。 使程序可移植的第一步就是使用标准库函数,并且把它们和ANSI/ISO C标准中定义的头文件放在一起使用。 第二步是尽可能使所写的程序适用于所有的编译程序,而不是仅仅适用于你现在所使用的编译程序。如果你的手册提醒你某种功能或某个函数是你的编译程序或某些编译程序所特有的。你就应该谨慎地使用它。有许多关于c语言编程的好书中都提出了一些关于如何保持良好的可移植性的建议。特别地,当你不清楚某个东西是否会起作用时,不要马上写一个测试程序来看看你的编译程序是否会接受它,因为即使这个版本的编译程序接受它,也不能说明这个程序就有很好的可移植性(C++程序员比c程序员应该更重视这个问题)。此外,小的测试程序很可能会漏掉要测试的性能或问题的某些方面。 第三步是把不可移植的代码分离出来。如果你无法确定某段程序是否可移植,你就应该尽快注释出这一点。如果有一些大的程序段(整个函数或更多)依赖于它们的运行环境或编译方式,你就应该把其中不可移植的代码分离到一些独立的“.c”文件中。如果只在一些小的程序段中存在可移植性问题,你可以使用#ifdef预处理指令。
默寞 2015-11-18
  • 打赏
  • 举报
回复
在ARM上跑编译器 要用 arm-linux-gcc
handkerchief 2015-11-17
  • 打赏
  • 举报
回复
很难想像玩linux和arm的人会问这种级别的问题,先打好基础再玩吧。
handkerchief 2015-11-17
  • 打赏
  • 举报
回复
编译器不一样,硬件平台不一样,运行结果不一样很正常。
91program 2015-11-05
  • 打赏
  • 举报
回复
调试,看看是什么代码错误了 然后针对错误进行修改
whysoft 2015-11-05
  • 打赏
  • 举报
回复
明白了 就是没处理好CPU的差异造成和移植问题 修改程序即可。
  • 打赏
  • 举报
回复
看到这种问题很无语,提问请站在回答者的角度读读自己的问题。

19,502

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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