Linux上的可执行文件在Windows上是不能运行的

一、概要

1、可执行文件的格式

Linux上的可执行文件是elf格式的

Windows上的可执行文件是exe格式的

Linux上的可执行文件在Windows上是不能运行的

2、程序的普通构建与静态构建

普通构建:

一个.c文件,用gcc命令编译成可执行文件(程序),该程序运行时是需要动态链接c运行时库以及其他库的,如果电脑上没有安装这些库,则该程序是不能正常运行的

静态构建:

将.c文件和需要的库一起编译构建成一个可执行文件(程序),该程序包含了所有运行需要的内容,可以直接迁移

相同的.c文件,静态构建的程序比普通构建的程序大很多

二、自己写的代码

复制代码
#include<stdio.h>
int fun(int, int);
int main() {
    int n, m;
    scanf("%d %d", &n, &m);
    printf("%d\n", fun(n, m));
    return 0;
}
int fun(int n, int m) {
    if (n == 0 || m == 0) {
        return 1;
    }
    return fun(n - 1, m) + fun(n, m - 1);
}

三、在Linux上运行

1、编译

普通构建

gcc hh.c -o RegularBuild

静态构建

gcc -static hh.c -o StaticBuild

注意普通构建的程序和静态构建的程序的大小上的差别

2、运行

四、在Winows上是不能运行的

将本篇三中构建的RegularBuild和StaticBuild拷贝到Windows中

1、桌面双击不能运行

选择记事本打开,可以看到文件开头的ELF

2 、在终端中打开也是不能运行的

相关推荐
Fcy6489 分钟前
Linux下 进程控制(一) —— 进程的创建、终止和等待
linux·运维·elasticsearch·进程控制·进程创建、终止、等待
汤姆yu12 分钟前
IDEA接入Claude Code保姆级教程(Windows专属+衔接前置安装)
java·windows·intellij-idea·openclaw·openclasw安装
万象.5 小时前
Linux传输层TCP,UDP相关内容
linux·tcp/ip·udp
MaximusCoder6 小时前
等保测评命令——Centos Linux
linux·运维·经验分享·python·安全·centos
万象.6 小时前
Linux数据链路层通信原理及报文格式
linux·网络·网络协议
卷Java6 小时前
Linux服务器Docker部署OpenClaw:腾讯云/阿里云/VPS安装避坑指南
linux·运维·服务器
雅欣鱼子酱7 小时前
Type-C供电PD协议取电Sink芯片ECP5702,可二端头分开供电调整亮度,适用于LED灯带户外防水超亮灯条方案
c语言·开发语言
鹓于7 小时前
手机SSH直连电脑运行iflow终极安全配置
windows·安全·ssh
Jackey_Song_Odd7 小时前
Part 1:Python语言核心 - 序列与容器
开发语言·windows·python
原来是猿8 小时前
Linux-【动静态库】
linux·运维·服务器