将Linux 32位应用程序移植到64位?

Rob*_*ide 7 c c++ linux 64-bit

我要将非常大规模的应用程序移植到64位,我注意到在网上有一些文章显示了这个移植的许多缺陷,我想知道是否有任何工具可以帮助移植到64位,意味着找到需要更改的代码中的位置....也许启用了警告的gcc ......它是否足够好?有更好的吗 ?

编辑:伙计们我正在寻找一个工具,如果有任何可能是完整的编译器,我知道GCC可以asist,但我怀疑它会发现
将在运行时发现的所有不可移植的问题....也许是静态的代码分析工具,强调移植到64位?

谢谢

Dir*_*tel 1

首先,为什么会有“移植”?

考虑到大多数发行版十多年来一直提供 32 和 64 位变体。因此,除非您以真正不可移植的方式进行编程(并且您几乎必须尝试),否则应该没问题。

  • 啊,以真正不可移植的方式编程,这很容易...将指针转换为“int”,在使用“va_arg”函数时进行隐式整数传播,让看似常量改变它们的符号...不用担心。 (8认同)
  • 很容易陷入不可移植的陷阱,即使是像 sprintf("%u",sizeof Something); 这样简单的东西也是如此。会咬你的,根据我的经验,大型应用程序通常已经开发了十年,有太多的人在乱搞,你永远不知道当你在其他东西上编译/运行它时会爆炸什么,而不是曾经运行过的东西 (6认同)