首页 > 其他分享 >编译链接

编译链接

时间:2022-08-25 17:36:56浏览次数:48  
标签:汇编 LIB 文件 DLL 编译 链接

编译链接分为4个步骤:预处理、编译、汇编、链接

1、预处理(预编译)

预编译过程把源文件变成.i文件,主要处理以#开头的预编译指令,比如#include、#define等

2、编译

编译是把预处理完的文件进行一系列词法分析、语法分析、语义分析、优化后,生成相应的汇编代码文件.s

3、汇编

汇编器将汇编代码变成机器指令,没有复杂语法,也没有语义,也不需要优化,只需要一一对应的翻译即可,最后生成目标文件,Windows中的.obj,Linux中的.o

4、链接

链接过程把.o文件和库文件链接到一起,生成可执行文件

动态链接:.LIB提供函数入口,运行时函数代码由.DLL提供。DLL和LIB文件必须随应用程序一起发行,否则应用程序会产生LINK错误

静态链接:编译时直接将.LIB代码加入程序中

两者都需要 #include .h 头文件

 

vs中:

编译时的错误以c开头

链接时的错误以LINK开头,

 

参考:

编译链接 https://blog.csdn.net/nameofcsdn/article/details/116654835

C++:LIB和DLL的区别与使用  https://blog.csdn.net/zjy1175044232/article/details/122367019

标签:汇编,LIB,文件,DLL,编译,链接
From: https://www.cnblogs.com/cc-world/p/16494641.html

相关文章

  • 基于opencv的RTSP(rtsp)流读取和保存(C++可cmake编译-附带py方法)
     因其工作需要使用C++读取rtsp流,本文将针对linux下c++版读取视频流保存视频,凌乱且各种错误。现将将其成功执行的流程和代码记录,顺带也写了一份python读取rtsp方法,供自己......
  • 复习:linux基础 软链接和硬链接
    软链接=windows下的快捷方式特点:可以对不存在的文件创建软链接可以对文件或者目录来创建软链接删除了软链接不会影响他的指向文件删除了指向文件,该软链接会变成死链......
  • SV编译器指令(Compiler Directives)
    SystemVerilog提供大量编译器指令来指导代码进程,比如`define、`ifdef、`elsif、`ifndef、`timescale、`default_nettype等。它们前面是(`)字符(重音字符)(不要将其与撇......
  • gcc编译器的常用命令行参数
    在学习常用的gcc命令行参数前,先了解gcc在执行编译工作的过程1、预处理,生成.i的文件[预处理器cpp]2、将预处理后的文件转换成汇编语言,生成文件.s[编译器egcs]3......
  • windows10-msys2-msvc编译ffmpeg4.4.2
    下载msys2在msys2安装目录下创建文件msys2_ffmpeg.batcall"D:\ProgramFiles\MicrosoftVisualStudio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat"setMSY......
  • LNMP架构的源码编译
    LNMP架构的源码编译一、LNMP架构的编译安装1.安装nginx服务(1)关闭防火墙[root@localhost~]#systemctlstopfirewalld[root@localhost~]#systemctldisablefirew......
  • 编译时常量
    只读变量并非绝对只读编译时常量只能在函数之外定义(包括main函数)因为编译时常量必须在编译时赋值,而函数都是在运行时调用,函数内的变量也都是在运行时才赋值,编译时常量在......
  • Windows下编译并裁剪FFmpeg
    Windows下编译并裁剪FFmpeg本文主要介绍下如何在Windows环境下编译出FFmpeg的可执行环境ffmpeg.exe,并通过一个例子演示如何对其进行裁剪,使其体积变小。一.工具与环境......
  • 一键编译安装Redis脚本
    #!/bin/bash./etc/init.d/functionsVERSION=redis-5.0.7PASSWORD=123456INSTALL_DIR=/usr/lcoal/redisinstall(){yum-yinstallgccjemalloc-devel||{act......
  • 解释(Interpret)和编译(Compile)的区别
    计算机语言可以分为机器语言、汇编语言和高级语言高级语言会翻译成机器语言之后,才可以执行。而翻译的方式有两种,一种是解释(Interpret),一种是编译(Compile)。运行过程编译(Co......