linking是从c++源码到二进制可执行文件的一个过程。
我们编译后会通过一个叫做链接的过程,链接的主要工作是找到每个符号和符号的位置并把它们链接在一起。
我们需要一种方法将这些文件链接到一个程序。即使没有外部文件里的函数,比如你已经把一个程序写在一个文件里了。应用程序仍需要知道入口点在哪里

案例

在vs中我们有一个非常简单的项目,只包含一个源文件math.cpp.
在这里有两个函数log和multiply,multiply实际上调用了log函数,打印出multiply这个单词到控制台。然后返回a*b

编译有两个阶段-编译和链接。
你可以对其进行区分,如果你按ctrl-F7或者按下编译按钮,只有编译会发生链接完全不会发生。然而如果你build你的项目或者按F5运行它会编译然后链接。
如果你按crl+f7可以发现没发生任何错误
如果你按build会发现得到一个链接错误,缺少入口函数,我们的主函数。
因为我们的编译分为两个阶段,如果编译中出现错误,错误会以c开头,如c243.
如果链接中出现问题会以LNK开头
你在文件的属性,可以知道配置类型是exe,exe必须要有一个入口点。


在一个文件中即可build成功。
如果这些函数存在多个文件中。如把log函数加入log.cpp中,再执行会报错,因为找不到名为log的函数

所以把声明加入math.cpp中可以发现

编译成功

C++链接器linker相关推荐

  1. 三、C++ 链接器 linker

    cilinking:从C++源码到可执行二进制的过程.compile文件之后进行链接,找到每个符号.函数的位置,并将其链接在一起 每个文件被编译成一个独立的.obj文件作为translation un ...

  2. 链接器 --- Linker

    链接器 1. 背景 ​ 对于经常使用 IDE 的开发者,通常点击一个按钮就万事大吉了,这虽然极大简化了过程,但是对于我们C语言这些相对底层的开发者来说非常非常不友好,屏蔽了大量细节,不了解内部细节是非 ...

  3. C++ 学习之旅(2)——链接器Linker

    每一个.cpp文件经过编译之后都会生成对应的.obj文件,然后通过链接器把它们进行链接,最后就可以生成.exe可执行文件了. 在链接过程中,最常见的错误应该是重复定义了,如下例: Log.h void ...

  4. s32ds 路径_S32DS 使用 tips--工程属性配置(编译选项和C编译器、汇编器及链接器设置)...

    内容提要 引言 1. 如何打开S32DS应用工程的属性设置 2. 设置Cross Settings 2.1 配置Create flash image 2.2 配置print size 3. 配置Tar ...

  5. 链接器、链接过程及相关概念解析

    文章目录 1. 编译器驱动程序 2. 目标文件 2.1 可重定位目标文件(.o) 2.2 可执行目标文件(无后缀) 2.3 共享目标文件(.dll和.so) 3. 链接器的任务 3.1 符号解析(sy ...

  6. arm-gcc链接器和链接脚本

    本文主要介绍了链接器和链接脚本的基本内容.主要偏向于入门级以及常见容易混淆的知识点. 1. 链接器介绍 在现在软件工程中,程序一般都比较复杂,通常由多个源文件组成.在编译的过程中会对这些源文件进行汇编 ...

  7. 链接器都干了些什么?

    目前项目在不停的增长,我想还是在它规模仍旧很小的时候把它的模块分清楚,不同模块分到不同的 projects 里面,这里面出现了很多问题,也反映了我知识上的很多不足. 1 , project 最后的输出 ...

  8. [转]链接器都干了些什么?

    http://www.cppblog.com/jacky2019/archive/2007/03/29/20891.html 目前项目在不停的增长,我想还是在它规模仍旧很小的时候把它的模块分清楚,不同 ...

  9. 链接器(linker)的作用——CSAPP第7章读书笔记

    首先说说我为什么要去读这一章.这个学期开OS的课,在Morden Operating System上读到和Process有关的内容时看到这样一句话:"Process is fundament ...

最新文章

  1. java char 默认值_java 中char 的初始值
  2. Android移动开发之【通往安卓的神奇之旅】Android的五大布局和AndroidManifest
  3. 人脸识别算法_格灵深瞳在人脸识别算法测试(FRVT)中斩获全球第一
  4. 前端学习(3076):vue+element今日头条管理-分支的使用
  5. 在linux平台搭建mongodb环境
  6. 搜狗输入法自定义短语(克制名词解释、背诵类问题)
  7. java控制反转_控制反转(IOC)模式
  8. 实时共享白板_使用Froala文本编辑器构建实时协作白板-第1部分。
  9. 公私钥加解密+数字签名原理图(原创)
  10. 针对文本文件单行连续多字符内容根据分隔符号转多行方法
  11. 用HTML+CSS做一个漂亮简单的个人网页——樱木花道篮球3个页面 学生个人网页设计作品 学生个人网页模板 简单个人主页
  12. C++项目实战-先把项目跑起来看看
  13. NaVicat Premium 字段设计怎么自动生成表格
  14. oracle禁用系统用户登录,关闭系统 - 在 x86 平台上引导和关闭 Oracle Solaris
  15. Android EventBus-----(EventBus简单使用)
  16. CentOS 6.4安装配置ldap
  17. 光猫显示isp服务器断开,光猫连接isp服务器超时
  18. 基于c++和asio的网络编程框架asio2教程基础篇:1、基本概念和使用说明
  19. 小程序轮播图高度适配
  20. 美光投20亿美元扩产内存产能 还将研发13nm DRAM

热门文章

  1. braintree api调用记录
  2. 【Python文本处理】基于运动路线记录GPX文件解析,心率、速度、时间、功率、踏频、海拔等参数的生成和更改,以及GPX循环拼接
  3. 【苹果共享相册推送】imessage苹果共享相簿第一个第二代月,然后更换服务器证书
  4. Android 双卡发送短信
  5. 虚拟内存不足造成的蓝屏_问题分析及解决
  6. python爬取和平精英皮肤_20行Python代码爬取王者荣耀全英雄皮肤
  7. 医药、医疗、互联网医疗平台、问诊、挂号、开药、处方、复诊、患者管理、开药问诊、视频问诊、电话问诊、图文问诊、医生端、医师认证、医院、药品、续方、常用处方、电子处方、抢单、接诊、退诊、预约、科室
  8. 《一点财经》编辑部严正声明
  9. 假如互联网也有奥运会......
  10. 360计算机在线使用,xp系统免费使用360人工在线服务的方法