关于整个编译过程和库文件的问题

author author     2023-05-02     268

关键词:

论述1
在C中
编译器单独编译(Compile)每个源文件(.c)生成相应的目标文件(.obj)
链接器链接(Link)各个目标文件(.obj)和资源文件(.res)生成可执行文件(.exe)
其中,obj是Complie的产物,同时也是Link的对象,而exe是Link的产物

问题1(可多选)
静态库文件(lib)是
A、Compile的产物
B、Link的对象
C、Link的产物
D、其他(请详细说明)

论述2
link成功会生成可执行文件(exe),此时运行程序(Execute Program)就相当于运行exe文件

问题2(可多选)
动态库文件(dll)是
A、Link的产物
B、Execute时链接的对象
C、其他(请详细说明)

问题3
一个程序从编译、链接、生成可执行文件到运行它,是不是系统自动并且一定会生成lib和dll?
如果不是,如何手动去生成lib和dll?

问题1:
BD
D:通过目标文件归档程序(VC++中是lib.exe)和其它方式(例如由dll文件生成lib文件)得到的产物 。
问题2:
AB
问题3:
不一定。首先,一个完整的程序的全编译过程可以仅依赖于现有的库文件,且不在这个程序的编译过程生成库文件。其次,库文件的格式不一定是lib和dll文件。至于手动生成lib和dll,这个和使用的工具相关。例如VC++的命令行可以用编译程序cl.exe编译源文件为目标文件,用归档程序lib.exe连接obj和lib文件生成静态库,用链接程序link.exe链接目标文件和资源文件生成exe和dll。
====
[原创回答团]

参考资料:原创 + Google确认

参考技术A 1 ABD, 会加载到生成的可执行文件中
2 ABC, 不会加载到生成的可执行文件中
3 不是. 编译器会有对应的选项去帮助你生成所需的文件, 比如
gcc a.c -shared -o a.dll -Wl,--output-def,a.def,--out-implib,liba.a
就可以给你生成个.dll

java代码编译和执行的整个过程

...擎来完成,流程图如下所示: Java代码编译和执行的整个过程包含了以下三个重要的机制:Java源码编译机制类加载机制类执行机制Java源码编译机制Java源码编译由以下三个过程组成:分析和输入到符号表注解处理语义分析和... 查看详情

java代码编译和执行的整个过程

...行引擎来完成,流程图如下所示:Java代码编译和执行的整个过程包含了以下三个重要的机制:Java源码编译机制类加载机制类执行机制Java源码编译机制Java源码编译由以下三个过程组成:分析和输入到符号表注解处理语义分析和... 查看详情

java代码编译和执行的整个过程(代码片段)

...行引擎来完成,流程图如下所示:Java代码编译和执行的整个过程包含了以下三个重要的机制:Java源码编译机制类加载机制类执行机制Java源码编译机制Java源码编译由以下三个过程组成:分析和输入到符号表注解处理语义分析和... 查看详情

java--代码编译和执行的整个过程

1.什么是JVM  JVM是Java的核心和基础,在Java编译器和os平台之间的虚拟处理器。它是一种基于下层的操作系统和硬件平台并利用软件方法来实现的抽象的计算机,可以在上面执行Java的字节码程序。Java编译器只需面向JVM,生成JVM... 查看详情

[转]一个cmake编译问题的解决过程

...于部分更新应用),设备和模拟器可以正常通讯;如果将整个产品进行更新后,发现设备和模拟器通讯不正常。实际的表象是这样的,其实是忽略了一个实际情况:老的应用使用之前的Makefile直接make编译而来,部分更新的时候 查看详情

60.java代码编译和执行的整个过程

60.Java代码编译和执行的整个过程60.Java代码编译和执行的整个过程Java代码编译是由Java源码编译器来完成,流程图如下所示:Java字节码的执行是由JVM执行引擎来完成,流程图如下所示:Java代码编译和执行的整个过... 查看详情

(良心篇)给你们分享一篇关于c#大文件上传的整个过程(代码片段)

简单写个小例子,记录一下此次大文件上传遇到的所有问题。一、客户端(使用winform窗体实现)具体功能:点击“选择”按钮,选择要上传的文件点击“上传文件”按钮,上传该文件调用UpLoad_Request(stringaddress,stringfi... 查看详情

C++ 编译和文件大小

...问题描述】:我在Google上搜索过这个,但大部分结果都是关于编译器A和编译器B。这个问题源于我在网页设计方面的经验(知道网页设计中常用的语言未编译。CGI是一个例外。)当您在网页中包含文件时,整个文件都会下载到用... 查看详情

关于 Cygwin Windows 编译问题的 Wine

】关于CygwinWindows编译问题的Wine【英文标题】:WineonCygwinwindowscompilationissue【发布时间】:2019-07-1809:29:48【问题描述】:我已经在WindowsServer2012R2上安装了Cygwin(32位),在Cygwin中我正在尝试编译Wine1.7.5(32位)。整个编译过程很顺... 查看详情

关于include头文件的问题

编了一个单链表结构,共有4个文件。分别是:List.h,ListItr.h,AbsList.h和test.cpp,他们之间如何include?是不是Ainclude了B,B就不需要includeA了?我现在只能把他们全放在一个文件中,可以编译,说明程序没问题。但我想分成4个……否则没... 查看详情

c/c++程序编译过程详解

...过程。链接是把目标文件、操作系统的启动代码和用到的库文件进行组织,形成最终生成可执行代码的过程。过程图解如下:从图上可以看到,整个代码的编译过程分为编译和链接两个过程,编译对应图中的大括号括起的部分,... 查看详情

c/c++程序编译过程详解

...过程。链接是把目标文件、操作系统的启动代码和用到的库文件进行组织,形成最终生成可执行代码的过程。过程图解如下:从图上可以看到,整个代码的编译过程分为编译和链接两个过程,编译对应图中的大括号括起的部分,... 查看详情

这个问题,c语言,一个关于头文件重复定义的问题!!!??

我在程序中建立一个globle.h文件,代码如下:#ifndef_GLOBLE_H#define_GLOBLE_Hinta;intb;intc;#endif1有多个.c以文件引用他,编译的时候说变量重复定义,我查资料说.h不能定义全局变量,可是我已经加入了#ifndef这样的语句(按理说它不会被重... 查看详情

java编译程序和运行过程详解

java整个编译以及运行的过程相当繁琐,我就举一个简单的例子说明:编译原理简单过程:词法分析-->语法分析-->语义分析和中间代码生成-->优化-->目标代码生成Java程序从源文件创建到程序运行要经过两大步骤:1、Java... 查看详情

gcc编译过程

...t)文件,分别对应着预处理、编译、汇编和链接4个步骤,整个过程如图10.5所示。这4步大致的工作内容如下:(1)预处理,C编译器对各种预处理命令进行处理,包括头文件包含、宏定义的扩展、条件编译的选择等;(2)编译,... 查看详情

简述java程序的编辑编译和运行过程

...会用到方法表,静态绑定时并不会用到。扩展资料:Java整个编译以及运行的过程相当繁琐,本文通过一个简单的程序来简单的说明整个流程。Java代码编译:是由Java源码编译器来完成;Java字节码的执行:是由JVM执行引擎来完成Java程... 查看详情

编译过程的一点心得

...不少问题。体会如下:1.缺少头文件不一定意味着缺少.so库文件。由于编译环境有许多包没有安装,难免在编译阶段会提示缺少头文件,这时候并不意味着缺少的是一个软件包,先把头文件给弄上,交叉编译环境可以从主机中取... 查看详情

关于.pyx文件的编译和导入

参考技术ADate:2020/03/21Author:CW前段时间学习了 NMS(非极大值抑制)的各种版本实现,其中包括Cython版本,需要对.pyx文件进行编译,在此针对学习内容记录一番。    首先确保安装了Cython。    以文... 查看详情