gpt4 book ai didi

c++ - 您选择的 cpu 不支持 x86-64 指令集

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:27:36 26 4
gpt4 key购买 nike

我知道这个问题已经有一些答案,但我似乎不明白为什么我一直收到这个错误。

下面是解释:我有 64 位机器,其中安装了 Windows 7 x64。我在 Windows 上的 GCC (CodeBlocks) 下编译我的代码,没有任何问题。然后我决定我的应用程序必须是可移植的,我决定在 Linux 上的 GCC 下编译它。在我的另一台 32 位机器上,代码编译没有任何问题。但是,在我的 64 位机器上,我决定将 Ubuntu 安装为五笔。当然我也安装了五笔x64版本。

我在五笔下成功安装了 Ubuntu,我安装了所有必要的东西,但是当我尝试编译我的项目时,我在第一行遇到错误“您选择的 cpu 不支持 x86-64 指令集”。好的,这对我来说听起来完全没有意义,考虑到我已经在 64 位机器上的 Windows 7 x64 上安装了 Wubi x64。那么为什么我会收到一条错误消息说我的 CPU 不支持 x86-64 指令集?

可能只是因为我安装了 WUBI 而不是以正常方式在 root 上安装 Ubuntu?我真的无法理解这件事。

非常感谢

编辑:好的,我在 Codeblocks 的某处找到了针对“Pentium M”架构选中的选项。我取消选中它,现在出现了几个错误,例如:

错误:从 void* 转换为 int 会丢失精度。

为什么这应该只发生在 Linux 而不是 Windows 上?

最佳答案

基于此评论:

EDIT: Ok, somewhere in Codeblocks I found the option that was checked for "Pentium M" architectures. I've unchecked it and now I get several erros such as:

这就是编译问题的原因——“Pentium M”是一个 32 位架构。 CodeBlocks 下的 gcc 将在 Windows 上生成 32 位代码默认

错误:

error: cast from void* to int loses precision.

是因为linux x64上64bit的模型是LP64,其中sizeof(long) == sizeof(pointer) == 64bits, sizeof (int) == 32bits 并且您试图将指针 (void *)(64bits) 插入 int(32bits),这会导致指针信息丢失。

出现这样的编译错误,很可能是代码不是 64 位干净的。

For which reason should this happen ONLY on Linux and not on Windows?

x64 上的 Linux 默认生成 64 位应用程序,您需要将 -m32 添加到程序的构建选项中以使其生成 32 位代码(可能有一个 CodeBlocks 目标选项来执行此操作)

关于c++ - 您选择的 cpu 不支持 x86-64 指令集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12951385/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com