gpt4 book ai didi

c++ - 编译程序 linux 32 位 vs 64 位

转载 作者:IT王子 更新时间:2023-10-29 00:56:07 26 4
gpt4 key购买 nike

我是 32 位与 64 位的新手。我在 linux 中用 C++ 编写了程序。我想知道什么决定程序是 32 位还是 64 位?这是因为我是从别人写的makefile编译程序的。

我如何检查它以及如何将它修改为 64 位?

谢谢。

最佳答案

要检查程序是否为64位,可以编译运行

file <name-of-the-binary>

例子:

~> file /bin/ls
/bin/ls: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, stripped

所以 /bin/ls 在我的系统上是 32 位的。

代码编译为 32 位还是 64 位取决于您的环境和编译器设置。要编译 64 位程序,您需要一个 64 位内核一个 64 位“用户空间”——特别是 64 位版本的 libc6 和编译器库。通常,您的编译器只会为您的环境选择合适的模式。

一些 Linux 发行版提供“混合”环境:64 位内核与 32 位和 64 位库。如果您的环境是这样的,您的编译器可能会提供编译这两种类型的二进制文件。如何在它们之间进行选择取决于您的硬件平台和编译器。对于 x86-64 平台上的 gcc,编译器开关将是 -m32-m64 -- 看看 gcc man页面。

关于c++ - 编译程序 linux 32 位 vs 64 位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4042842/

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