拓冰建站拓冰建站
首页 / 资讯中心 / 正文

为什么全局符号要 EXPORT,外部符号要 IMPORT?

难度:★本文首发于我的嵌入式技术号「OneChan」,未经授权禁止转载。任何一个启动文件,翻开前几行,你一定会看到这样的组合:EXPORT __Vectors EXPORT Reset_Handler IMPORT SystemInit IMPORT __mainEXPORT和IMPORT成对出现,一个往外送,一个往里拿。很多教程一句话带过:“EXPORT是导出符号给别的文件用,IMPORT是引用别的文件的符号。”这话没错,但太浅了。你有没有想过:为什么需要显式声明?编译器不能自动识别吗?如果忘了写 EXPORT,链接器报什么错?如果忘了写 IMPORT 呢?这两个关键字背后,链接器到底在做什么?今天我们就来把“符号可见性”这件事彻底拆开。这不仅是启动文件的问题,你以后遇到的每一个“undefined reference”链接错误,根源都在这。一、汇编器和编译器都是“近视眼”先理解一个根本前提:汇编器和编译器在编译单个文件
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门