0

我有几个关于 x64 和 x86 系统的问题

我在 qt 4.7 中编写了一个 C++ 应用程序,通常我将 int 用于整数等。

那么如果我想将此应用程序转换为 x64bit,我该怎么办?

我应该使用不同的编译器选项构建它还是应该在我的代码中更改某些内容

另一个问题,如果我下载一个开源应用程序并在 Linux 中构建它,它将是 x64 还是 x86 架构,我的意思是如果我在 x64bit Linux 中构建源代码,我将获得一个 x64 应用程序,如果我在 x86bit Linux 中构建源代码,我将获取 x86 应用程序

4

2 回答 2

1

构建的类型应该取决于您正在构建的编译器和体系结构。

也就是说,应该(应该)编写代码,以便支持具有不同位深度的构建。

例如,如果您使用 声明整数变量long,则变量的大小会有所不同(取决于架构)。如果您改为使用std::int32_tor声明它std::int64_t,则在架构之间切换时大小将保持不变。

除了位深度之外,您还应该确保任何依赖于字节序的代码继续正确运行(除了位深度和字节序之外,可能还有其他因素需要注意)。

总之,您可能只是在新架构上重新编译代码并且它可以工作,或者您可能需要进行一些编辑。我想这取决于你的代码做什么以及它是如何编写的。

于 2013-01-08T15:47:36.877 回答
0

是的,您可能只需要重新编译它。在(大多数?)64 位架构上,int 的大小仍然是 32 位。

你的第二个问题的答案是,除非你告诉编译器,否则它可能会为你编译它的平台构建。打字uname -m会告诉你那是哪一个。

于 2013-01-08T15:48:47.970 回答