2009-10-21 154 views
0

我试图将32位代码移植到64位Linux机器上。在Linux上是否有用于64位positing警告的编译器标志。代码从32位移植到64位

SUN有+ w2 -m64标志。任何人都可以给我提供类似这个标志的信息吗?

谢谢你在前进,

回答

0

这不正是你正在寻找的答案,但你可以尝试在第一移植相int32_t取代许多int越好。 另请看另一个答案。 (不,我不能发表评论,看来我得太少代表...)

+0

在AMD64 linux上,int == int32_t。 long == int64_t。你的建议是把int改成unsigned int,如果有什么会引入错误。 – 2009-12-09 23:48:19

+0

好电话!我的意思是int32_t。 – 2009-12-10 07:57:14

0

尝试gcc -Wall -Wconversion -Wpointer-arith -Wtype-limits -Wcast-qual

其实,阅读gcc的手册页,有一吨的警告,其中一些可能会有所帮助只有当你的代码不会为你知道的事情产生大量洪水时,这实际上并不是问题。 -Wall,-pedantic和-Wextra是打开一堆警告的元标志。 -Wall包含了许多重要的特性,当你尝试使用64位构建不好的代码时会发生这种情况。

-Werror(将警告转化为错误)可能会有用,以避免在修复了一些错误但不是全部错误后必须修复make clean