Linux 64位移植问题

时间:2010-09-15 09:14:16

标签: c++ linux 64-bit porting

我正在进行Linux 64位移植,我们在代码中使用了很多长变量。现在在Linux 64上长64位。我们在位操作代码中遇到问题。 我听说有选项LLP64(长达32)和ILP64(长达64)。但我不知道它的编译器选项(g ++)。 我有更多的疑惑, 如果我使用选项LLP64进行编译,那么可执行文件是否为原生64位? 使用此选项,我是否可以包含64位第三个库?

1 个答案:

答案 0 :(得分:6)

gcc不允许你选择LLP64,至少不是linux目标。即使它确实如此,您也不会与其他库(包括libc)兼容。

你必须要么

  • 修复代码以处理长度为32或64位,
  • 将代码更改为使用int(或更好的int32_t)。
  • 将代码更改为使用long long(或更好的int64_t)
  • 将应用程序编译为32位(如果它使用的32位库存在,它将在64位机器上正常运行)