64位软件,只是一个编译问题?

时间:2012-08-05 17:40:45

标签: compiler-construction compilation migration 64-bit

我正在搜索Chrome 64位版本,我发现不发布该版本的核心论点是:“现在,它不会给那些暗示的努力带来太多好处”。 (或类似的东西)。

我的简单问题是:编译器完成64位版本的大部分工作是什么?在我的脑海中,'64位版本'使用64位CPU寄存器就是相同的逻辑。

显然我在将32位版本的某些软件迁移到64位版本时缺少一些重要的观点,我想知道中心调查一下。我怀疑主要问题是第三方插件/扩展或类似问题,但我不太确定。

提前致谢。

1 个答案:

答案 0 :(得分:1)

'msvs_settings': {
  'VCCLCompilerTool': {
    'WarningLevel': '3',
    'WarnAsError': 'false', # TODO(maruel): Enable it.
    'Detect64BitPortabilityProblems': 'false',           <== here
  },
},

我刚刚下载的chromium / src / build / common.gpyi文件。只是暗示代码库不是64位干净,不完全是一个灌篮,因为该选项在VS2008中已被弃用。但是,是的,Chromium的代码库是非常庞大的,并且还有一些代码的很多,而Google工程师并没有这样做。必然会有将size_t或ptrdiff_t加载到int或long的位置。随着Windows和Linux的额外头痛使用不同的类型映射。

这种麻烦并不难找到,只需用64位编译器编译它,看看是什么击中了粉丝。评论是准确的,就独立浏览器而言,以64位烘焙它没有任何实际好处。 Chrome.exe不会消耗大量的虚拟机,每个标签页面都有不同的处理过程。嵌入浏览器是一个不同的故事,IE经常嵌入,因为它很简单,所以他们非常被迫提供64位版本。如果你嵌入CEF,那么你现在就遇到了一个相当大的问题。