Linux 64位移植问题

Cra*_*zyC 1 c++ linux 64-bit porting

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

nos*_*nos 6

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

你必须要么

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