源文件如何转换到可执行文件

lifehrx lifehrx     2022-09-19     481

关键词:

从源文件到可执行文件

 

1计算机只能运行本地代码(机器语言)由cpu进行解析

源代码(构成源文件.c / .java -------(翻译)--------- 本地代码

 

 

 

2)本地代码:例如Windows 下的.exe文件的内容---------Dump-----------216进制的数

 

 

3)高级语言------------(编译器)---------------- 机器语言

编译器,编程语言,cpu 的类型的不同翻译出机器语言而不同

 

编译器也是一种程序本身也要运行环境

(如有LInux下的c 编译器, windows 下的编译器)

 

 

4hello.c ---------(编译)--------- hello.obj ------(链接)------hello.exe

   (源文件) ------------------------(目标文件)虽然内容是本地代码,但程序处于未完状态所以不能运行,要把多个目标文件结合如调用头文件的函数,生成1EXE文件程序是完整的了。.        

 

5)库文件:把多个目标文件集成保存到一个目标文件的形式。(.lib

 

  链接器指定了库文件,从中抽取出所需要的目标文件,然后和其它目标文件

结合生成EXE文件。

之所以使用库文件,为了简化链接器的参数指定多个文件这个过程(也就是编译),还能保护源码。

 

6)API : Windows 以函数的形式为应用提供了各种功能,这些形式的函数称为API

Application Programming Interface 

DLL(Dynamic Link Library ) :储存API的目标文件。

 

 

7).exe 文件作为单独文件储存在硬盘中,但它并没有指定变量和函数实际存储位置,

.exe 文件给变量和函数分配的的虚拟地址,在程序运行时虚拟地址会转换成实际地址。

连接器会在exe文件开头追加转换地址所需要的重要信息(这个信息称为再配置信息),

再配置信息成为了变量和函数的相对地址。

 

8.exe 文件加载到内存后才可以运行。并在内存中分配堆栈两个组,此时程序由4部分构成。

 

9

 

 

 

 

 

 

 

如何将使用 PyQt 制作的 python 应用程序打包到可安装文件中? [复制]

】如何将使用PyQt制作的python应用程序打包到可安装文件中?[复制]【英文标题】:HowcanipackagemypythonapplicationmadeusingPyQtintoinstallablefile?[duplicate]【发布时间】:2020-04-1912:07:02【问题描述】:从python应用程序创建可执行文件的方法有... 查看详情

将 sqlite DB 添加到可执行 JAR 文件

】将sqliteDB添加到可执行JAR文件【英文标题】:addsqliteDBtoexecutableJARfile【发布时间】:2013-02-1716:25:27【问题描述】:我正在使用JAVA(带有eclipsejuno)并尝试创建一个包含sqliteDB文件的可执行JAR文件。我尝试通过这一行连接到数据... 查看详情

Python libinsane到可执行文件(制作exe后将dll文件保存在哪里)

】Pythonlibinsane到可执行文件(制作exe后将dll文件保存在哪里)【英文标题】:PythonlibinsanetoExecutablefile(Wheretokeepdllfileaftermakingexe)【发布时间】:2021-05-2722:14:42【问题描述】:我关注了thislink和thisofficialgitrepooflibinsane,并在MSYS2环境... 查看详情

一个c++源文件从文本到可执行文件经历的过程(代码片段)

一个C++源文件从文本到可执行文件经历的过程以HelloWorld为例进行说明首先我们编写一个cpp源程序test.cpp#include<iostream>usingnamespacestd;intmain()cout<<"helloworld"<<endl;return0;使用g++编译命令时g++-otesttest.cppGcc编 查看详情

静态库中的符号有时会链接到可执行文件,有时不会

】静态库中的符号有时会链接到可执行文件,有时不会【英文标题】:symbolsinstaticlibrarysometimesgotlinkedintoexecutable,sometimesnot【发布时间】:2019-01-1010:27:59【问题描述】:我有一个静态库,它是使用g++从linux上的许多cpp文件生成的。... 查看详情

从源代码到可执行文件(代码片段)

...,总而言之就如下四个过程:预处理比如有test.c源文件,内容如下:#include<stdio.h>/*主函数*/intmain(void) printf("helloworld\\n");//打印hello 查看详情

从源代码到可执行文件(代码片段)

...,总而言之就如下四个过程:预处理比如有test.c源文件,内容如下:#include<stdio.h>/*主函数*/intmain(void) printf("helloworld\\n");//打印hello 查看详情

将所有库依赖项包含到可执行文件中 Linux

】将所有库依赖项包含到可执行文件中Linux【英文标题】:IncludealllibrarydependenciesintoanexecutablefileLinux【发布时间】:2015-06-2208:42:50【问题描述】:提前致谢。我需要在具有Opencv库的所有依赖项的不同机器上使用linuxC++应用程序。... 查看详情

使用 CMake 将资源(例如,着色器代码;图像)嵌入到可执行文件/库中

】使用CMake将资源(例如,着色器代码;图像)嵌入到可执行文件/库中【英文标题】:Embedresources(eg,shadercode;images)intoexecutable/librarywithCMake【发布时间】:2012-08-0212:54:50【问题描述】:我正在用C++编写一个应用程序,它依赖于我... 查看详情

Qt5 CMake 将所有库包含到可执行文件中

】Qt5CMake将所有库包含到可执行文件中【英文标题】:Qt5CMakeincludealllibrariesintoexecutable【发布时间】:2020-03-2517:48:42【问题描述】:我正在尝试使用Qt5.14构建一个处于发布模式的应用程序,并且在QtCreator中一切正常,但是当我尝... 查看详情

CMake 是不是将包含的标头中的所有内容编译到可执行文件中,还是仅将主类中使用的部分编译为可执行文件?

】CMake是不是将包含的标头中的所有内容编译到可执行文件中,还是仅将主类中使用的部分编译为可执行文件?【英文标题】:DoesCMakecompileeverythingintheincludedheadersintotheexecutableoronlythepartsusedinthemainclass?CMake是否将包含的标头中的... 查看详情

如何将 oracle XE 数据库嵌入到可执行 jar 中?

】如何将oracleXE数据库嵌入到可执行jar中?【英文标题】:howtoembedoracleXEdatabaseinexecutablejar?【发布时间】:2014-07-1710:44:23【问题描述】:我在“myecplise”中使用javaswings和oracleXE数据库开发了java应用程序。我还创建了可执行jar文件... 查看详情

使sym链接到可执行文件(代码片段)

我有一个shell脚本compileRun,它编译并执行C源文件。#!/bin/shgccbar.c-o./bar./bar我真正希望实现的是我们何时ln-scompileRunbar.c./bar.c我希望bar.c能够编译和执行。我感谢任何帮助。答案我理解OP想要什么。只有当源文件显式存储在与符号链... 查看详情

如何从可执行文件中提取数组?

】如何从可执行文件中提取数组?【英文标题】:HowcanIextractanarrayfromanexecutablefile?【发布时间】:2010-04-2714:43:52【问题描述】:我想做thisquestion的逆操作。我将文件作为数组嵌入到可执行文件中,稍后我想从可执行文件中提取嵌... 查看详情

如何使用 adb 将文件复制到可从 PC 访问的 android 目录

】如何使用adb将文件复制到可从PC访问的android目录【英文标题】:HowtocopyfileusingadbtoandroiddirectoryaccessiblefromPC【发布时间】:2017-01-1908:52:21【问题描述】:如果您将android设备连接到PC,您可以浏览文件和目录。可以使用Environment.ge... 查看详情

源代码到可执行程序的过程详解:预编译编译汇编链接(代码片段)

1、gcc编译过程分解(1)首先是将.c源文件和.h头文件经过预编译(cpp是预编译器),得到.i文件,主要是进行的一些替换工作;(2)将.i文件经过编译器(gcc)处理,得到.s汇编文件,现在文件内容已经从C语言编程了汇编... 查看详情

从程序到进程

...p://www.civilnet.cn/bbs/browse.php?topicno=78426 本文以《从代码到可执行文件》为基础,阅读本文前确保你熟悉了《从代码到可执行文件》中提到的概念,本文中的示例程序仍是《从代码到可执行文件》中的gemfield.c。代码如下:********... 查看详情

从源代码到可执行文件(代码片段)

...,总而言之就如下四个过程:预处理比如有test.c源文件,内容如下:#include<stdio.h>/*主函数*/intmain(void) printf("helloworld\\n");//打印helloworld! return0; 用预处理指令将其生成*.i文件gcc-E-otest.itest.c//将源文件test.c... 查看详情