c++ - 何时为可执行文件分配内核版本

标签 c++ linux gcc linux-kernel version

Linux file 命令提供有关可执行文件的信息,例如:
“/home/foo:ELF 32 位 LSB 可执行文件,Intel 80386,版本 1 (SYSV),动态链接(使用共享库),用于 GNU/Linux 2.6.9,已剥离”

我对该输出的“for GNU/Linux 2.6.9”部分特别感兴趣。是什么决定了这一点?

鉴于我有两台机器,都安装了 gcc 4.6,但一台有 2.6.9 Linux 内核,另一台有 3.2.0 Linux 内核。
如果我在 2.6.9 机器上编译一个 .o.a 文件,然后我把它带到 3.2.0 机器上,我什至可以链接它吗到那里建立的可执行文件?如果我链接它,我的可执行文件的内核版本是否仍然是 3.2.0?

最佳答案

这是从机器上得到的内核版本,二进制文件是在构建过程中编译和打包的。这可能是 link 的重复项

关于c++ - 何时为可执行文件分配内核版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25567357/

相关文章:

在 minGW-W64 g++ 中编译的 C++ 代码不能用 Ubuntu g++ 编译

c++ - 加载 RGB PNG 结果为黑色图像

c++ - Qt设置iOS屏幕方向

c++ - 使用堆栈而不是递归实现 Lisp eval

c - perf record如何获取目标进程指令的虚拟内存地址以及perf使用什么数据结构来存储它

linux - 从 docker 容器在主机上创建/触摸文件

c - gcc 在更改变量声明顺序后保留内存分配

c++ 如何在 unicode/utf8 中写入/读取 ofstream

linux - 如何将 FFTW 库连接到软件?

c - printf 和 gcc -O 选项更改返回值